从输入 URL 到页面加载发生了什么?

72 阅读2分钟

从输入URL到页面加载,大致经历了以下过程:

  1. URL解析:浏览器会解析输入的URL,分解出协议(如HTTP、HTTPS)、域名(如www.example.com)和路径(如/page)等信息。

  2. DNS解析:浏览器会根据解析到的域名进行DNS解析,将域名转换为对应的IP地址。这一步骤可以通过本地缓存、操作系统缓存或者向DNS服务器查询来完成。

  3. 建立TCP连接:浏览器使用解析到的IP地址与服务器建立TCP连接。这个过程中涉及到TCP的三次握手,用于确保连接的可靠性和稳定性。

  4. 发送HTTP请求:建立TCP连接后,浏览器向服务器发送HTTP请求。请求中包含了请求方法(如GET、POST)、请求头(如User-Agent、Cookie)和请求体(如POST请求时携带的数据)等信息。

  5. 服务器处理请求:服务器接收到浏览器发送的请求后,根据请求的内容进行处理。这可能包括查询数据库、执行服务器端脚本等操作,最终生成响应数据。

  6. 接收响应数据:服务器处理完请求后,将生成的响应数据发送给浏览器。响应数据包括响应头(如状态码、内容类型)和响应体(实际的数据内容)。

  7. 渲染页面:浏览器接收到响应数据后,根据响应头中的内容类型确定如何处理响应体的数据。如果是HTML页面,浏览器会解析HTML、CSS和JavaScript等资源,构建DOM树、CSSOM树和渲染树,最终将页面显示在浏览器窗口中。

  8. 关闭TCP连接:页面渲染完成后,浏览器会关闭与服务器的TCP连接。如果页面中有其他资源需要加载(如图片、脚本等),则会再次进行DNS解析、建立TCP连接和发送HTTP请求等步骤,直至所有资源加载完成。