返回
从 URL 输入到页面加载完成的详细过程:揭秘网络访问的背后机制
前端
2023-10-13 10:06:32
- 理解 URL 的作用
- URL(Uniform Resource Locator)统一资源定位符,是用来指定互联网上某一资源的地址。
- URL 由多个部分组成,包括协议(如 http、https)、主机名(如 www.example.com)、端口号(如 80)、路径(如 /index.html)等。
2. DNS 解析:将域名转换为 IP 地址
- 当您在浏览器中输入 URL 后,浏览器首先需要解析域名,将其转换为相应的 IP 地址。
- DNS(Domain Name System)域名系统,负责将域名解析为 IP 地址。
- 浏览器向本地配置的首选 DNS 服务器发起域名解析请求,请求通过 UDP 协议向 DNS 的 53 端口发起。
- DNS 服务器根据请求的域名,查询其对应的 IP 地址,并返回给浏览器。
3. 建立 TCP/IP 连接:可靠的数据传输机制
- 浏览器使用 DNS 解析得到的 IP 地址,与目标服务器建立 TCP(Transmission Control Protocol)传输控制协议连接。
- TCP 是一种面向连接的、可靠的传输层协议,它可以保证数据在传输过程中不会丢失或损坏。
- TCP 建立连接的过程称为“三次握手”,包括 SYN(同步)、SYN-ACK(同步确认)和 ACK(确认)三个步骤。
4. HTTP 请求:向服务器发送请求
- TCP 连接建立后,浏览器向目标服务器发送 HTTP(Hypertext Transfer Protocol)超文本传输协议请求。
- HTTP 是一种用于在客户端和服务器之间交换信息的协议。
- HTTP 请求包含请求行、请求头和请求体三个部分。
- 请求行指定了请求的方法(如 GET、POST、PUT 等)、请求的资源(如 /index.html)和 HTTP 版本。
- 请求头包含了请求的相关信息,如浏览器类型、语言、Cookie 等。
- 请求体包含了请求的数据,如表单数据、文件上传等。
5. HTTP 响应:服务器返回请求结果
- 服务器收到 HTTP 请求后,会进行处理并返回 HTTP 响应。
- HTTP 响应也包含响应行、响应头和响应体三个部分。
- 响应行指定了响应的状态码(如 200 OK、404 Not Found 等)和 HTTP 版本。
- 响应头包含了响应的相关信息,如内容类型、长度、缓存控制等。
- 响应体包含了响应的数据,如 HTML 代码、JSON 数据等。
6. 页面加载:浏览器解析和渲染
- 浏览器收到 HTTP 响应后,会开始解析 HTML 代码,并构建 DOM(Document Object Model)文档对象模型。
- 浏览器还会解析 CSS 代码,并根据 CSS 样式规则渲染 HTML 元素。
- 浏览器还会解析 JavaScript 代码,并执行 JavaScript 脚本。
- 页面加载完成的标志是,浏览器在地址栏显示一个小锁图标,或者是一个灰色的小地球图标。
7. 总结
从输入 URL 到页面加载完成的过程,涉及 DNS 解析、TCP/IP 协议、HTTP 请求和响应、页面加载等多个步骤。这些步骤相互配合,确保了互联网上信息的高效传输和访问。