输入第一个字符:
如果您开始输入“baidu.com”,然后输入字母b,您的浏览器将在您最近的浏览历史记录(例如Google 的Chrome 浏览器)中搜索以b 开头的URL,或者执行本地搜索(例如Apple 的Safari)。你可以搜索一下。以URL b 开头的相关URL。不同的浏览器有不同的算法,并且会根据使用模式(隐身、正常等)建议不同的URL。
网址分析:
现在,如果您选择baidu.com,浏览器将开始考虑它是URL 还是搜索词。显然,baidu.com是一个以.com结尾的URL,浏览器决定访问www.baidu.com。如果您正在搜索某个术语,浏览器将根据配置的默认搜索引擎搜索该术语。
HTTP 和HTTPS:
然后浏览器必须确定这是https://www.baidu.com 还是http://www.baidu.com。在浏览器技术的早期,http 是默认协议。这使得许多用户容易受到中间人攻击。近年来,许多搜索引擎开始降低http域名的权重,因为https越来越流行,而http并不安全。浏览器缓存了一个https URL列表,而百度显然也包含在这个列表中。所以对于https://www.baidu.com,浏览器会尝试连接https对应的443接口。
DNS查询:
URL和接口是已知的,但浏览器还需要知道IP地址。查询IP地址的过程称为DNS查询。浏览器查看自己的缓存记录,然后查看系统缓存记录,然后查看路由器的缓存。如果没有缓存,浏览器会向DNS服务器请求www.baidu的IP地址。com。我们不会详细讨论小巴,因为这期间还有很多技术细节。
TCP 连接:
一旦浏览器收到IP地址,它就向包含IP地址和端口(443)的系统发送请求,以建立TCP协议中的数据包信息流。数据包通过无线网络、有线网络、4G、5G等不同方式进行传输,最终通过路由器到达服务器终端。服务器端与浏览器通信多次,SYN、ACK、FIN等细节我就不赘述了。
TLS 握手:
接下来是TLS(传输层安全)握手请求。许多工程模因都来自这里。计算机向终端服务器发送ClientHello,服务器返回ServerHello。计算机验证返回信息的电子签名,随机生成一段字节,根据服务器的公钥加密后发送给服务器。服务器使用其私钥对其进行解密,并使用该字节生成对称密钥。然后双方互相发送Finished语句,表明双方可以安全地发送信息。
获取/请求:
接下来是响应baidu.com的实际过程。直接在浏览器地址栏中输入baidu.com 将产生GET 请求。 baidu.com后面没有后缀,说明请求的内容位于服务器根目录下。服务器判断是否允许GET,以及浏览器是否有权限访问,如果全部验证通过,则服务器提取访问内容并将内容解析为浏览器可以接收的格式。
HTML浏览器渲染:
浏览器收到服务器返回的内容后,解析HTML、CSS、JS格式并渲染内容。大多数时候,浏览器呈现HTML 信息,但也可能显示PDF、图像文件等。具体分析过程也有不同的算法和标准。解析完成后,你会看到熟悉的搜索栏。
一个简单的URL输入操作背后有一个非常复杂的过程。我们享受着互联网带来的便利,却不知道其背后蕴藏着多少人类的智慧。
版权声明:本文由今日头条转载,如有侵犯您的版权,请联系本站编辑删除。