关注
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
相关推荐
点赞 评论 收藏
分享
07-17 18:29
上海交通大学 材料工程师 点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 不卡学历的大厂有哪些? #
10142次浏览 75人参与
# 顺丰求职进展汇总 #
52445次浏览 283人参与
# 校招阶段,学历VS技术哪个更重要? #
3282次浏览 39人参与
# 除了主业以外,你还有哪些其他收入? #
3952次浏览 69人参与
# 没有合适的工作,你会先找个干着,还是考公考研 #
120583次浏览 1142人参与
# 实习如何「偷」产出? #
17632次浏览 204人参与
# 职场新人体验 #
10976次浏览 114人参与
# 摸鱼被leader发现了怎么办 #
60115次浏览 368人参与
# 实习打杂,要跑路吗 #
9361次浏览 118人参与
# 风评不好的公司,你会去吗? #
42255次浏览 290人参与
# 校园里的破防时刻 #
5433次浏览 56人参与
# 社恐入职新公司如何融入团队 #
10262次浏览 62人参与
# 联想求职进展汇总 #
274575次浏览 2058人参与
# 考研可以缓解求职焦虑吗 #
53058次浏览 472人参与
# 大学最后一个寒假,我想…… #
47675次浏览 580人参与
# 第一份工作应该选高薪还是热爱? #
77569次浏览 747人参与
# 你觉得早上几点上班合适? #
74595次浏览 311人参与
# 金融财经春招备战日记 #
22367次浏览 133人参与
# 一人推荐一个值得去的通信/硬件公司 #
188397次浏览 1867人参与
# 学历贬值真的很严重吗? #
27875次浏览 187人参与