首字母输入:
当你开始输入baidu.com,b字母输入的时候,浏览器会在你近期浏览历史找到b开头的网址(比如谷歌的Chrome浏览器),也可能进行本地搜索(比如苹果的Safari),寻找跟b开头相关的网址。不同浏览器有不同的算法,在你不同的使用模式下(比如隐身,正常),给出不同的网址建议。
URL 解析:
现在,当你选择了baidu.com,浏览器开始思考这是网址还是搜索词条。显然baidu.com这种以.com结尾的是网址,浏览器就会决定访问www.baidu.com。如果是搜索词条,浏览器会按设定的默认搜索引擎对词条进行搜索。
HTTP vs HTTPS:
接下来,浏览器要决定这是https://www.baidu.com 还是http://www.baidu.com。在浏览器技术早期的时候,http是默认的协议。这让很多用户变得很容易受到中间人攻击。近些年https变得越来越普遍,很多搜索引擎会对http域名降低权重,因为http太不安全了。浏览器会缓存一份https网址的清单,百度显然在这份清单内。所以在https://www.baidu.com情况下,浏览器会尝试去连接https对应的443接口。
DNS 查询:
虽然知道了网址和接口,浏览器还需要知道IP地址。查询IP地址的过程叫做DNS查询。浏览器会去查询本身的缓存记录,然后看系统的缓存记录,再去看路由器的缓存,如果都没有,浏览器会向DNS服务器发出请求,询问www.baidu.com的IP地址。这期间还有很多技术细节,小巴就不具体展开了。
TCP 连接:
当浏览器收到IP地址以后,它会向系统发送请求,请求内容包括IP地址,端口(443),以建立TCP协议下的数据包信息流。数据包根据无线网,有线网,4G,5G,会有不同的传输方式,最终通过路由器,到达服务器终端。服务器终端会和浏览器进行几次交流,具体细节就不展开了,有SYN,ACK,FIN等等。
TLS握手:
接下来是TLS(Transport Layer Security)握手请求,有很多工程师的梗来自这里。电脑向终端服务器发送ClientHello,服务器端返回ServerHello,电脑会检验返回信息的电子签名,随机生成一段字节,根据服务器的公钥加密,并将其发送给服务器。服务器用私钥进行揭秘,并用这段字节生成对称密钥。接下来两边互相发送Finished(结束)的语句,表示两端可以安全地传递信息了。
GET/ 请求:
接下来才是真正处理baidu.com的过程。在浏览器地址栏直接输入baidu.com属于GET请求。baidu.com后面没有后缀,说明索取内容在服务器的根目录。服务器端会判断GET是否被允许以及你的浏览器是否有权限访问,如果所有验证都通过,服务器会提取访问内容,将内容解析成浏览器能接收的形式。
HTML 浏览器呈现:
浏览器收到了服务器的返回内容后,解析HTML,CSS和JS格式,并将这些内容呈现出来。大多数时候,浏览器呈现的都是HTML信息,但有时也会有PDF,图像文件等等。具体解析过程也有不同的算法和标准。解析后就是我们熟悉的搜索横条了。
一个简单的网址输入操作,背后竟有如此复杂的过程。在我们享受着互联网带来的便利时,殊不知这后面有多少人类智慧的结晶。
本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 sumchina520@foxmail.com 举报,一经查实,本站将立刻删除。
如若转载,请注明出处:https://www.ppcring.com/post/6549.html