在本文中,我将简要介绍“从输入URL到页面加载完成”的整个过程。作为一名互联网从业者,您应该了解自己的立场。
操作过程非常简单:打开浏览器,在地址栏中输入www.baidu.com,按Enter键,浏览网页…。
在www.baidu.com上输入地址栏
当您按下www.baidu.com并且浏览器收到此消息时,它将触发自动完成机制。浏览器根据自己的算法识别您要访问的URL。
按Enter键
此时,Enter键的电流环路被电容器间接关闭,导致少量电流进入键盘的主逻辑电路。逻辑系统扫描每个按钮的状态,解析按钮开关的潜在反弹变化,并将其转换为键盘代码值。键盘控制器将在获得代码值后进行编码。编码后,密钥代码值将存储在寄存器中。键盘的USB控制器将查询该键码值,然后将键码值转换为数据包。然后,该数据包通过键盘传递给计算机,键盘对数据包进行解码。最后,将解码的密钥代码值发送到操作系统的硬件层。
解析URL
浏览器通过URL知道将使用HTTP协议,以及所请求资源的主页。
浏览器会将在地址栏中输入的文本传递给默认搜索引擎。将文本传递给搜索引擎时,URL将具有特定的字符串,告诉搜索引擎搜索来自浏览器。
Unicode(规范字符集)编码转换。如果存在非ASCII字符,请将它们转换为Unicode编码。
检查HSTS列表
浏览器检查“HSTS(HTTP严格传输安全性)”列表,其中包含指向仅使用HTTPS的网站的链接。
DNS查询和解决方案
浏览器检查域名是否在缓存中。
如果没有缓存,请调用库函数进行查询。库函数在执行DNS解析之前检查域名是否在本地主机中。
如果域名不在缓存中和主机中,则库函数将向DNS服务器发送DNS查询请求。
查询本地DNS服务器。
首先查询地址解析协议(ARP)缓存。如果缓存命中,则返回结果:目标IP=MAC地址。如果缓存未命中,请查看本地路由表中子网中的目标IP地址,并使用相关接口。然后查询所选网络接口的MAC地址。
发送ARP请求时,路由器或其他硬件将返回结果(结果包含默认网关的IP地址)。
相应的请求通过TCP/UDP协议发送到DNS服务器。如果本地DNS服务器找不到结果,它将逐层查询,直到返回结果(目标服务器的IP地址)。
使用套接字
浏览器获取目标服务器的IP地址,以及URL中给出的端口号(http默认端口号为端口80),浏览器调用库函数套接字。此请求将被封装,目标端口将添加到标头中。在网络层,添加了一个IP头,其中包含目标服务器的IP地址和机器的IP地址。接下来,继续封装,封装本地内置网卡的MAC地址和本地路由器的MAC地址。该包现已准备就绪。
接下来,包将从本地计算机启动,通过本地网络,然后通过调制解调器将数字信号转换为模拟信号。在传输线的另一端,另一个调制解调器将模拟信号转换回数字信号,以供下一个网络节点处理。最终数据包将到达目标服务器。
在TCP连接(三次握手)期间多次发送发送和接收过程:客户端将数据包发送到服务器并建立连接设置的初始序列号;服务器接收数据包然后相应地处理它,并将数据包发送到客户端。表示收到第一个数据包;客户端再次发送数据包以确认连接。这是建立三次握手的过程。
TLS握手
客户端向服务器发送相应的消息,指示可用的加密算法和压缩算法。
服务器向客户端返回消息,包括TLS版本,以及自身使用的加密算法和压缩算法。
客户端验证服务器发送的信息是否可用。如果可用,则生成加密的随机数并将其返回给服务器。
服务器解密密文并生成自己的主密钥。
然后加密整个会话并传输http的内容。
HTTP协议
浏览器向服务器发送请求头,请求头包括:请求数据模式,http版本号,域名和其他头信息。接下来,服务器返回指示请求状态的响应代码。浏览器将从其自己的缓存中获取所需内容。在解析HTML之后,浏览器将重复上述过程,直到获得HTML页面引入的所有资源(图像,CSS,JS等)。
浏览器
当服务器提供资源(HTML,CSS,JS,图像等)时,浏览器将执行以下操作:
HTML解析。 HTML解析器的主要工作是解析HTML文档并解析HTML的内容。
CSS解析。分析CSS文件内容和属性值,并将每个CSS文件解析为样式表对象。
页面渲染。 DOM树是通过多个列计算和渲染的,并且该过程是测量排版绘图页面。在渲染过程中,图形处理器的渲染过程使用图形处理器GPU。
后期渲染
渲染后,浏览器运行JavaScript代码(例如动画)或基于时间机制与用户交互。像Flash和Java这样的插件也会运行,这些脚本可能会改变页面的内容和布局,并产生另一轮渲染和渲染。
相关术语:
Unicode格式。 Unicode是计算机科学领域的行业标准,包括字符集和编码方案。它为每种语言中的每个字符设置统一且唯一的二进制编码,以满足跨语言和平台的文本转换和处理的要求。
HSTS。 HTTP严格传输安全,Internet工程组织IETF正在实施新的Web安全协议。它的作用是强制客户端(例如浏览器)使用HTTPS来创建与服务器的连接。
DNS服务器。域名服务器,域名服务器。它是执行域名转换和相应IP地址转换的服务器。
主机。主机是没有扩展名的系统文件。它可以使用记事本等工具打开。其功能是在一些常用的URL域名与其对应的IP地址之间建立关系。 “数据库”,当用户在浏览器中输入需求时。登录URL时,系统将自动从Hosts文件中找到相应的IP地址。一旦找到,系统将立即打开相应的网页。如果未找到,系统将提交URL到DNS域名解析服务器以进行IP地址解析。
ARP。地址解析协议。它是一种TCP/IP协议,它根据IP地址获取物理地址。
MAC地址。它被称为物理地址和硬件地址,用于定义网络设备的位置。
插座。源IP地址和目标IP地址以及源端口号和目标端口号的组合称为套接字。用于标识客户端请求的服务器。通常使用套接字函数创建。
TLS。安全传输层协议,用于在两个通信应用程序之间提供机密性和数据完整性。
此时,从输入URL到页面加载的完整过程已完成。你学会了吗?
作者:转瞬即逝,互联网产品设计师,4年互联网产品经验。
本文最初由@流年发表。未经许可,禁止复制。
该地图由作者提供