第 1 步
用户在浏览器中输入 URL (www.bytebytego.com) 并回车。我们首先要做的是将 URL 转换为 IP 地址。这个从 URL 到 IP 地址的映射通常存储在缓存中,因此浏览器会在多层缓存中查找 IP 地址:浏览器缓存、操作系统缓存、本地缓存和 ISP 缓存。如果浏览器在缓存中找不到映射,就会请求 DNS(Domain Name System)解析器进行解析。
第 2 步
如果在任何缓存中都找不到 IP 地址,浏览器就会转到 DNS 服务器进行递归 DNS 查找,直到找到 IP 地址为止。
第 3 步
有了服务器的 IP 地址,浏览器就会向服务器发送 HTTP 请求。为了安全访问服务器资源,我们应始终使用 HTTPS。浏览器首先通过 TCP 三次握手与服务器建立 TCP 连接。然后向客户端发送公钥(Public Key)。客户端使用公钥加密会话密钥(Session Key)并发送给服务器。服务器使用私钥(Private Key)解密会话密钥。然后,客户端和服务器就可以使用会话密钥来交换加密数据。
第 4 步
服务器处理请求并发回响应。响应成功时,状态代码为 200。响应包含 3 个部分:HTML、CSS 和 Javascript。浏览器会解析 HTML 并生成 DOM 树。浏览器还会解析 CSS 并生成 CSSOM 树。然后,浏览器将 DOM 树和 CSSOM 树合并为渲染树。浏览器渲染内容并显示给用户。