当我们在浏览器的地址栏中输入 URL 并按下回车键后,浏览器会执行以下步骤:
-
URL 解析:浏览器首先会解析 URL,将其分成协议、主机名、端口号、路径和查询参数等部分。
- 协议:指定了浏览器和服务器之间通信所使用的协议,如 http、https、ftp 等。
- 主机名:指定了服务器的域名或 IP 地址。
- 端口号:指定了服务器监听的端口号,如果未指定则使用协议默认的端口号。
- 路径:指定了请求的资源在服务器上的位置。
- 查询参数:用于向服务器传递额外的信息。
-
DNS 解析:浏览器会查询 DNS 服务器来获取主机名对应的 IP 地址。如果 DNS 缓存中存在相应的记录,则直接返回 IP 地址;否则需要向 DNS 服务器发送请求进行解析。
- DNS(Domain Name System)是一种将域名解析为 IP 地址的分布式数据库系统。
-
建立 TCP 连接:一旦浏览器获得主机的 IP 地址后,它就可以尝试建立到该主机的 TCP 连接。
- TCP(Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层协议。
-
发送 HTTP 请求:建立 TCP 连接后,浏览器会向服务器发送 HTTP 请求。HTTP 请求通常包括请求方法、请求头、请求体等信息。
- HTTP(Hyper Text Transfer Protocol)是一种用于传输超文本的协议。
-
接收 HTTP 响应:服务器接收到请求后,会根据请求返回相应的响应。这个过程通常包括响应头、响应体等信息。
- HTTP 响应通常包括状态码和响应头、响应体等信息。状态码用于表示请求处理的结果,如
200 OK表示请求成功,404 Not Found表示请求的资源不存在等。
- HTTP 响应通常包括状态码和响应头、响应体等信息。状态码用于表示请求处理的结果,如
-
解析并渲染网页:浏览器接收到 HTTP 响应后,会根据响应头的 MIME 类型确定响应体的类型,并进行相应的处理。如果是 HTML 文档,则浏览器会解析文档,生成 DOM 树,并进行渲染,最终显示在浏览器窗口中。
- MIME(Multipurpose Internet Mail Extensions)是一种用于表示文档类型的标准。浏览器根据 MIME 类型确定响应体的类型,如
text/html表示 HTML 文档,image/jpeg表示 JPEG 图片等。
- MIME(Multipurpose Internet Mail Extensions)是一种用于表示文档类型的标准。浏览器根据 MIME 类型确定响应体的类型,如