关注
2、输入一个URL会发生什么?
1.用户输入URL,会使用浏览器默认搜索引擎加上搜索内容合成url;如果是域名会加上协议(如https)合成完整的url。
2.然后按下回车。浏览器进程通过进程间通信把url传给网络进程。(网络进程接收到url才发起真正的网络请求)。
3.网络进程接收到url后,先查找有没有缓存。有缓存,直接返回缓存的资源。 没有缓存。(进入真正的网络请求)。
首先获取域名的IP,系统会首先自动从hosts文件中寻找域名对应的 IP 地址,一旦找到,和服务器建立TCP连接;如果没有找到,则系统会将网址提交 DNS 域名解析服务器进行 IP 地址的解析。
4.利用IP地址和服务器建立TCP连接(3次握手)
5.建立连接后,浏览器构建数据包(包含请求行,请求头,请求正文,并把该域名相关Cookie等数据附加到请求头),然后向服务器发送请求消息。
6.服务器接收到消息后根据请求信息构建响应数据(包括响应行,响应头,响应正文),然后发送回网络进程。
7.网络进程接收到响应数据后进行解析。如果发现响应行的返回的状态码为301,302,说明服务器要我们去找别人要数据。找响应头中的Location字段要,Location的内容是需要重定向的地址url。获取到这个url一切重新来过。如果返回的状态码为200,说明服务器返回了数据。
8.数据传输完成,TCP四次挥手断开连接。如果,浏览器或者服务器在HTTP头部加上如下信息,TCP就一直保持连接。保持TCP连接可以省下下次需要建立连接的时间,提示资源加载速度Connection:Keep-Alive 。
9.网络进程将获取到的数据包进行解析,根据响应头中的Content-type来判断响应数据的类型,如果是字节流类型,就将该请求交给下载管理器,该导航流程结束,不再进行;如果是text/html类型,就通知浏览器进程获取到文档准备渲染。
浏览器进程获取到通知之后。新建一个渲染进程。
渲染进程对文档进行页面解析和子资源加载。解析html生成DOM树,解析css生成规则树。
两个树结合生成渲染树(render tree),浏览器会根据渲染树布局,计算css样式,即每个元素在页面中的位置好和大小等信息。最后浏览器绘制各个节点,将页面展现给用户。
查看原帖
9 2
相关推荐
点赞 评论 收藏
分享
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 找工作,行业重要还是岗位重要? #
8029次浏览 105人参与
# 五一之后,实习真的很难找吗? #
46275次浏览 335人参与
# 盲审过后你想做什么? #
12809次浏览 115人参与
# 领导秒批的请假话术 #
10065次浏览 74人参与
# 小厂实习有必要去吗 #
42253次浏览 260人参与
# 设计人如何选offer #
98475次浏览 690人参与
# 外包能不能当跳板? #
22213次浏览 191人参与
# 五一假期,你打算“躺”还是“卷”? #
31681次浏览 441人参与
# 考研可以缓解求职焦虑吗 #
21322次浏览 252人参与
# 面试等了一周没回复,还有戏吗 #
115733次浏览 1076人参与
# 大疆的机械笔试比去年难吗 #
69670次浏览 603人参与
# 找工作前vs找工作后的心路变化 #
7215次浏览 64人参与
# 如果有时光机,你最想去到哪个年纪? #
43368次浏览 770人参与
# 硬件人,你被哪些公司给挂了 #
46796次浏览 723人参与
# 写简历别走弯路 #
714642次浏览 7850人参与
# 应届生薪资多少才合理? #
3130次浏览 24人参与
# 你喜欢工作还是上学 #
37750次浏览 413人参与
# 每人推荐一个小而美的高薪公司 #
72873次浏览 1357人参与
# 如果不工作真的会快乐吗 #
101310次浏览 868人参与
# 许愿池 #
271936次浏览 2849人参与