4. 从输入URL到页面加载发生了什么
- DNS 解析查找域名的 IP 地址
- 首先会从本机的 hosts 文件里查找是否有该域名的 IO
- 如果没有,会递归式地按序去本地 DNS 服务器、根 DNS 服务器、域服务器去依次查询
- 一旦查找到了,服务器返回 IP 给用户主机,同时缓存下该 IP
- 建立 TCP 连接
- 确定主机的端口和主机 IP 后,开始三次握手建立起两台主机代表的 Socket 的 TCP 连接
- 发送 HTTP 请求
- 用户主机将指定的 HTTP 请求报文发送给服务器
- 其中,HTTP 请求报文 = 请求行 + 请求报头 + 请求正文
- 同时在将请求报文发送给传输层时,可以选择是否进行 HTTPS 传输,若是,则需要进行 SSL 加密
- 用户主机将指定的 HTTP 请求报文发送给服务器
- 服务器处理并返回 HTTP 响应报文
- 报文数据通过 Socket 使用 TCP 协议向下封装传送
- 传送到服务器,将由 Web 服务器进一步封装成 HTTP Requst 对象等,供上层使用
- 最后通过 HTTP Response 可以操控相应的响应报文通过数据返回
- 其中,HTTP 响应报文 = 状态码 + 响应报头 + 响应报文
- 浏览器解析文档渲染画面
- 浏览器拿到响应报文数据后,就会解析报文,构件 DOM 树与渲染树等,将其绘制到屏幕