当前位置: 首页 > news >正文

【计算机网络】用户从输入网址到网页显示,期间发生了什么?

请添加图片描述

1.URL解析

  • 浏览器分解URL:https://www.example.com/page
    • 协议:https
    • 域名:www.example.com
    • 路径:/page

2.DNS查询:

浏览器向DNS服务器发送查询请求,将域名解析为对应的IP地址。

3.CDN检查(如果有):

  • 若域名使用CDN,DNS会返回边缘节点IP
  • 浏览器优先从最近的CDN节点获取静态资源

4.TCP连接:

  • 浏览器与目标服务器三次握手建立TCP连接(HTTPS还需TLS/SSL握手)

客户端 → SYN → 服务端
客户端 ← SYN-ACK ← 服务端
客户端 → ACK → 服务端

5.HTTP请求:

  • 发送带有请求头的HTTP报文:

GET /page HTTP/1.1
Host: www.example.com
User-Agent: Mozilla/5.0
Accept: text/html

6.服务器处理:

  • 静态资源:直接返回文件
  • 动态内容:通过后端程序生成HTML

7.HTTP响应:

  • 返回状态码+数据
HTTP/1.1 200 OK
Content-Type: text/html
<!DOCTYPE html><html>xxx</html>

8.浏览器渲染:

关键流程:
1.解析HTML构建DOM树
2.解析CSS生成CSSOM树
3.合并为渲染树
4.布局计算元素位置
5.绘制像素到屏幕

9.资源加载:

  • 解析到 <img> <script> 等标签时,触发额外HTTP请求
  • 现代浏览器会并行加载资源

上面是期间的重要过程,下面介绍一些有关的网络技术

关键网络技术:

  • HTTP/HTTPS应用层协议,定义数据传输格式
  • TCP/IP:确保可靠传输的分组交换协议
  • TLS加密(HTTPS):加密通信内容
  • CDN加速:通过边缘节点减少延迟

上面提到了CDN,初次看到我也不知道CDN是什么?有什么用?我赶紧去搜集了一下,下面是一些有关CDN的简单总结。

1.什么是CDN?

CDN(Content Delivery NetWork,内容分发网络) 是一种分布式网络。
用于高效、快速地向全球用户分发静态和动态内容(如网页、图片、视频、JS/CSS文件等)。
它的核心目标是 减少延迟、提高访问速度、减轻源服务器负载。

2.CDN的工作原理

传统无CDN的访问流程

用户直接请求源服务器,如果服务器离用户较远,延迟高,尤其是跨国访问时,速度慢。
请添加图片描述

3.使用CDN的访问流程

CDN在全球部署多个边缘节点,用户访问时,自动从最近的节点获取内容,大幅降低延迟。

请添加图片描述

4. CDN的核心技术:

1.缓存:

  • CDN节点会缓存静态资源(如HTML、CSS、JS、图片、视频),减少回源请求。
  • 缓存策略:
    • TTL: 控制缓存有效期
    • Cache-Control:HTTP头控制缓存行为。

2.负载均衡

  • 通过DNS等技术,将用户请求路由到最优节点。

3.动态加速

  • 对动态内容(如API请求)优化传输路径,减少延迟(如TCP优化、BGP路由优化)。

4.DDoS 防护

  • CDN可以吸收恶意流量,保护源服务器免受攻击。

5.CDN的典型应用场景:

1.静态资源加速

图片、CSS、JS、字体等文件的分发

2.视频/直播流媒体:

降低缓冲,提升观看体验

3.软件/游戏下载:

大文件快速分发

4.全球网站加速:

解决跨国访问延迟问题

5.安全防护:

地狱DDos、WAF(Web应用防火墙)

http://www.xdnf.cn/news/343117.html

相关文章:

  • Nginx1.26.2安装包编译安装并配置stream模块
  • V型球阀材质性能深度解析:专攻颗粒、料浆与高腐蚀介质的工业利器-耀圣
  • WEB UI自动化测试之Pytest框架学习
  • RedHat磁盘的添加和扩容
  • 计数排序-详解
  • 从新手到高手:jQuery 全面进阶之路
  • 数字电子技术基础(五十六)——JK触发器
  • crawl4ai能替代scrapy等传统爬虫框架吗?
  • windows 部署 Kafka3.x KRaft 模式 不依赖 ZooKeeper
  • FPGA_Verilog实现QSPI驱动,完成FLASH程序固化
  • 学习黑客 MAC 地址深入了解
  • 解决社区录音应用横屏状态下,录音后无法播放的bug
  • 信息学奥赛一本通 1511:【SCOI2011】糖果 | 洛谷 P3275 [SCOI2011] 糖果
  • ProfiNet与CANopen:新能源时代的“语言翻译官”
  • Kotlin与Java企业级开发实战:从零到一掌握最新语法与技术精髓
  • Office宏病毒钓鱼-打点突破
  • ROS2基本操作1
  • js常用的数组遍历方式
  • HypotMAX7705771077157720HIPOT美国ASSOCIATEDRESEARCH耐压测试仪
  • 1分区 1-113 多线不起总线启
  • 使用pytorch保存和加载预训练的模型方法
  • Spring Boot 中 MongoDB @DBRef注解适用什么场景?
  • 深入理解软件测试覆盖率:从概念到实践
  • SpringBoot的自动配置和起步依赖原理
  • Java 文件监听与热更新机制封装
  • 【LeetCode 42】接雨水(单调栈、DP、双指针)
  • 日拱一卒 | RNA-seq数据质控(1)
  • ERC-20与ERC-721:区块链代币标准的双星解析
  • Spring MVC 中Model, ModelMap, ModelAndView 之间有什么关系和区别?
  • Spring AI Alibaba-04- Spring AI + RAG + ToolCalling 智能对话应用开发全流程