从输入 URL 到页面加载完成的过程
过程概述
- DNS解析
- 建立TCP链接
- 发送http请求
- 服务端处理请求并返回http报文
- 浏览器解析和渲染页面
- 连接结束
1.1 DNS解析
域名解析成IP地址
1)看浏览器是否访问过这个地址,如果之前访问过返回IP
如果之前没有访问过基于操作系统查找,如果操作系统没有,
分级查询,
1)本地DNS服务器
2)如果没有 根域名服务器
3)如果没有 COM顶级域名服务器
4) 如果没有 goole.com域名服务器
1.2 建立TCP链接
TCP三次握手
为什么2次不可以
**第一次握手**:客户端 --》 服务端
SYN=1(请求建立连接 )seq=n(客户端自己的序列号)
表示客户端具有发送信息的能力
**第二次握手**:客户端 --》 服务端
SYN=1(服务端同意建立连接 )ack = n+1(确认收到的信息) seq=x(服务端自己的序列号)
表示服务端具有接收信息和发送信息的能力
**第三次握手**:客户端 --》 服务端
SYN=0(发送信息)ack = x+1(确认收到的信息)seq = n+1
表示客户端具有接收信息的能力
1.3 发送http请求
1.4 服务端处理请求并返回http报文
1.5浏览器解析和渲染页面
浏览器解析html 自上而下进行加载的,下载和渲染文件
1.6 连接结束(四次挥手)
为什么三次不可以
**第一次挥手**:客户端 --》 服务端
表示发完了
**第二次挥手**:客户端 --》 服务端
表示知道发完了
**第三次挥手**:客户端 --》 服务端
表示收完了
**第四次挥手**:客户端 --》 服务端
表示知道收完了