返回
互联网的幕后故事:从 URL 到内容呈现的全过程
前端
2023-09-14 07:59:07
在浏览器输入 URL 回车之后发生了什么(超详细版)
当你在浏览器中输入 URL 并回车后,以下事件将依次发生:
-
浏览器解析 URL
浏览器首先会解析 URL,并将其分解为以下几个部分:
- 协议(如 或 https://)
- 主机名(如 www.example.com)
- 端口号(如 80 或 443)
- 路径(如 /index.html)
- 查询字符串(如 ?q=search+term)
- 片段标识符(如 #section1)
-
DNS 查询
浏览器接下来会进行 DNS 查询,以将主机名解析为 IP 地址。DNS 查询的过程如下:
- 浏览器首先会检查其本地 DNS 缓存,看是否有主机名的 IP 地址记录。
- 如果本地 DNS 缓存中没有主机名的 IP 地址记录,浏览器会向 DNS 服务器发送查询请求。
- DNS 服务器会查询其数据库,并将主机名的 IP 地址记录返回给浏览器。
-
建立 TCP 连接
浏览器在获得主机名的 IP 地址后,会与该 IP 地址对应的服务器建立 TCP 连接。TCP 连接是网络通信的基本单位,它允许两个设备在网络上交换数据。
-
发送 HTTP 请求
浏览器通过 TCP 连接向服务器发送 HTTP 请求。HTTP 请求包含以下信息:
- 请求方法(如 GET 或 POST)
- 请求路径(如 /index.html)
- HTTP 版本(如 HTTP/1.1 或 HTTP/2)
- 请求头(如 User-Agent、Accept-Language 等)
- 请求体(如果请求方法是 POST,则包含要提交的数据)
-
服务器处理 HTTP 请求
服务器在收到 HTTP 请求后,会对其进行处理。处理过程如下:
- 服务器首先会检查请求的语法是否正确。
- 如果请求的语法正确,服务器会根据请求的路径和方法来执行相应的操作。
- 例如,如果请求的路径是 /index.html,服务器会将 index.html 文件的内容返回给浏览器。
-
浏览器接收 HTTP 响应
服务器在处理完 HTTP 请求后,会将 HTTP 响应发送回浏览器。HTTP 响应包含以下信息:
- 响应状态码(如 200 OK 或 404 Not Found)
- 响应头(如 Content-Type、Content-Length 等)
- 响应体(如 index.html 文件的内容)
-
浏览器解析 HTTP 响应
浏览器在收到 HTTP 响应后,会对其进行解析。解析过程如下:
- 浏览器首先会检查响应的状态码,以确定请求是否成功。
- 如果请求成功,浏览器会根据响应的 Content-Type 来解析响应体。
- 例如,如果响应的 Content-Type 是 text/html,浏览器会将响应体解析为 HTML 文档。
-
浏览器渲染内容
浏览器在解析完 HTTP 响应后,会将其渲染为可视内容。渲染过程如下:
- 浏览器首先会根据 HTML 文档创建 DOM 树。
- 浏览器接下来会根据 CSS 样式表为 DOM 树中的元素应用样式。
- 最后,浏览器会将 DOM 树和 CSS 样式表结合起来,将其渲染为可视内容。
-
内容呈现在浏览器中
浏览器在渲染完内容后,会将其呈现在浏览器窗口中。此时,你就可以看到你请求的网页内容了。