【计算机网络】用户从输入网址到网页显示,期间发生了什么?
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应用防火墙)