## Web 页面请求过程 1. 向 DNS 服务器发送 DNS 查询报文来解析域名。 2. 在运输层,DNS 查询报文会放入端口号为 53 的 UDP 数据报中。 3. 在网络层,UDP 数据报封装进 IP 分组中,路由器会执行路由选择算法来转发分组。 4. 在链路层,IP 分组会封装进链路层帧中,此时需要使用 ARP 来查询 MAC 地址,通过 ARP 得到 MAC 地址之后就可以进行链路层传输了。 5. 在 DNS 服务器返回域名的 IP 地址后,就可以开始进行 HTTP 会话了。 6. 要进行 HTTP 会话,需要建立 TCP 连接。TCP 连接的建立需要进行进行 TCP 的三次握手。TCP 连接建立后会保持持久连接。 7. 客户端发送 HTTP 请求报文,请求获取页面。 8. 如果存在缓存服务器,并且缓存服务器上有该页面,那么缓存服务器通过 HTTP 响应报文向客户端发送缓存的页面。否则,服务器发送该页面。 9. 浏览器得到页面内容之后,解析并渲染,向用户展示页面。 10. 当客户端不再需要连接时,发送的 HTTP 请求报文中包含 Connection: close 字段,从而释放 TCP 连接,TCP 连接的释放需要进行四次握手过程。