1. 域名解析(DNS):将域名解析成 IP 地址
- DNS 是一个网络服务器,我们的域名解析简单来说就是在 DNS 上记录一条信息记录
- DNS 协议提供通过域名查找 IP 地址,或逆向从 IP 地址反查域名的服务
2. TCP 连接:TCP 三次握手
- 在客户端发送数据之前会发起 TCP 三次握手用以同步客户端和服务端的序列号和确认号,并交换 TCP 窗口大小信息
- TCP 三次握手的过程如下:
- 浏览器告诉服务器,我要发送请求了
- 服务器告诉浏览器,我准备接受了,你赶紧发送吧
- 浏览器告诉服务器,我马上就发了,准备接受吧
- 为啥需要三次握手?
-
为了防止已失效的连接请求报文段突然又传送到了服务端,因而产生错误
-
3. 发送 HTTP 请求
请求报文由请求行(request line)、请求头(header)、请求体组成
- 请求行:请求方法、请求地址、http状态码
- 请求头:Referer、User-Agent
- 请求体:请求数据
name=tom&password=1234&realName=tomson
4. 服务器处理请求并返回 HTTP 报文
- 响应报文由响应行(request line)、响应头部(header)、响应主体三个部分组成
5. 浏览器解析渲染页面
- 根据 HTML 解析出 DOM 树
- 根据 CSS 解析生成 CSS 规则树
- 结合 DOM 树和 CSS 规则树,生成渲染树
- 根据渲染树计算每一个节点的信息
- 根据计算好的信息绘制页面
6. 断开连接:TCP 四次挥手
- 浏览器告诉服务器,我请求报文发送完了,你准备关闭吧
- 服务器告诉浏览器,我请求报文接受完了,我准备关闭了,你也准备吧
- 服务器告诉浏览器,我响应报文发送完了,你准备关闭吧
- 浏览器告诉服务器,我响应报文接受完了,我准备关闭了,你也准备吧

网友评论