在浏览器输入url后会发生的过程:
1.DNS对域名进行解析;
2.建立TCP连接(三次握手);
3.发送HTTP请求;
4.服务器处理请求;
5.返回响应结果;
6.关闭TCP连接(四次挥手);
7.浏览器解析HTML;
8.浏览器布局渲染;
1.浏览器对输入的地址补全,然后DNS域名解析
如果你搜索的是baidu.com的时候,实际访问的还是http://www.baidu.com,浏览器会将你没输入全的地址进行补充。
2、找到服务器地址,建立TCP连接(三次握手)
这里举个简单例子来了解什么是三次握手;
我(用户)去银行取钱,对银行的工作人员(服务器)说我要取一个亿(发送一个SYN),工作人员会说确定吗(这里接收到了请求,并且返回一个ACK+SYN),之后我(用户)就会说确定(接收到了返回的信息并且会返回一个ACK),然后就开始服务。这就是三次握手。
为何是三次握手不是两次四次?
在工作人员对你说"你确定吗?"的时候你没有回复,它们是不会继续进行操作的,这样你就会继续问,“我要取钱”,就又会来一个工作人员,这样一直持续下去,钱没取出来人站了一排,服务器就会宕机。所以一定要三次握手。
3.发送HTTP请求
浏览器会将请求包装成请求报文,如 GET / HTTP/1.0 (请求的方法 请求的URL 请求所使用的协议)
头部信息:User-Agent Host等成对出现的值
主体:请求头部和主体之间有一个回车换行。如果是get请求,则没有主体部分,post请求有主体部分。
4、服务器处理请求
服务器接收到请求后,就会返回数据,比如一个html页面。
5、返回响应结果
如果服务器返回的content-type是accept中的任何一个,浏览器都能解析,并直接展示在网页上。
浏览器能直接处理很多种格式,并直接呈现在网页中,并不限于accept中规定的字段。
6.关闭TCP连接(四次挥手)
还是上面的例子:
客户说我处理完我要做的事情了(发送一个FIN),工作人员说收到(发送ACK),我也处理完我要做的事情了,然后客户会说我没有想办理的业务了,再见吧;工作人员说好的。至此进入TIME_WAIT状态(保留现场业务信息),等到2MSL后,才把这个柜台信息清理了(连接最终关闭,并且把业务信息都清理了)。
7.浏览器解析HTML
浏览器通过解析HTML,生成DOM树,解析CSS,生成CSS规则树,然后通过DOM树和CSS规则树生成渲染树。渲染树与DOM树不同,渲染树中并没有head、display为none等不必显示的节点。文章来源:https://www.toymoban.com/news/detail-544980.html
8.浏览器布局渲染
html解析->外部样式、脚本加载->外部样式执行->外部脚本执行->html继续解析->dom树构建完成->加载图片->页面加载完成文章来源地址https://www.toymoban.com/news/detail-544980.html
到了这里,关于浏览器地址栏输入url以后发生了什么的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!