网站是如何运作的?
上周我讲解了互联网运行所需的硬件和协议基础知识。在本系列的第二部分中,我将深入探讨网站的显示步骤,以便我们更好地理解其中涉及的协议。这些步骤如下:
- DNS 查询
- TCP握手
- TLS握手
- HTTP 请求
- HTTP 响应
DNS 查询是计算机获取域名并查找目标网站正确 IP 地址的过程。用户会向其选择的 DNS 解析器发送请求,解析器随后会从其 DNS 服务器查询 IP 地址,并将结果返回给发送请求的客户端。默认的 DNS 解析器通常是您的互联网服务提供商 (ISP)。URL 会被拆分到不同的服务器,例如顶级域名 (TLD) 服务器,其中包含每个 .com 后缀的目录。这种查询方式称为递归 DNS 查询。非递归查询遵循相同的流程,但 DNS 客户端(用户的计算机)会承担解析器的职责,直接向服务器发出请求。
TCP握手是与目标主机建立连接的一种方式。它是一个三次握手过程,用于在传输进程开始前同步和确认数据包的传输。客户端通过发送同步消息来发起传输,该消息用于建立连接并告知用于跟踪正在传输的数据包的序列号。主机服务器随后会回复一个确认消息。最后,客户端会向服务器发送另一个确认消息,连接即建立完成。连接完成后,客户端会向服务器发送一个FIN消息来断开会话。
下一步是 TLS 握手。TLS 是一种用于互联网通信的加密协议,它是之前使用的 SSL 协议的升级版。握手步骤包括:首先指定要使用的 TLS 版本;其次确定所使用的密码套件;第三,通过服务器的公钥和 SSL 证书颁发机构的数字签名对服务器进行身份验证;最后,生成会话密钥,以便在连接期间使用对称加密。以上是密钥交换的一般版本,实际过程包含更多步骤,并且取决于密钥交换算法和支持的密码套件。更多信息请参见此链接。
查看网页的最后两个步骤是 HTTP 请求和响应。HTTP 是一种用于向 Web 服务器请求和接收信息的协议。请求会包含请求者希望服务器执行的方法以及执行该操作所需的相关信息。常见的请求方法有 GET、POST 和 UPDATE。GET 方法会向服务器请求标头中指定的 URL 上的信息。您的浏览器会发送 GET 请求以获取网站渲染所需的 HTML 和 CSS 代码。服务器收到请求后,会以状态码的形式返回响应。状态码 200 表示请求成功,服务器开始发送数据包。点击此处查看请求方法列表,点击此处查看状态码列表。
我这里提供的是网页渲染原理的简要概述。每个部分都包含更多内容,您可以根据自己的兴趣进行深入研究。下方是我撰写本文所用资源的链接。希望您有所收获,如果觉得有用,请点赞或在下方留言。祝您一周愉快,编程快乐!
资源:
- DNS 查询:
- https://www.cloudns.net/wiki/article/254/
- https://smallbusiness.chron.com/primary-secondary-dns-65413.html
- https://smallbusiness.chron.com/domain-name-system-dns-resolvers-work-76639.html
TCP握手
- TLS握手
- HTTP 请求/响应:
- https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods
- https://developer.mozilla.org/en-US/docs/Web/HTTP/Status

