关注
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
相关推荐
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# offer帮选 #
4820531次浏览 29246人参与
# 0经验如何找实习? #
2680次浏览 75人参与
# 百融云创求职进展汇总 #
4644次浏览 61人参与
# 校招薪资来揭秘 #
356698次浏览 1936人参与
# 你找工作经历过哪些骗局? #
1247次浏览 34人参与
# OC/开奖 #
283681次浏览 1756人参与
# 产品每日一题 #
72358次浏览 641人参与
# 你开始找寒假实习了吗? #
2402次浏览 35人参与
# 实习,不懂就问 #
135491次浏览 1259人参与
# 如果公司降薪,你会跳槽吗? #
108450次浏览 672人参与
# Offer比较,你最看重什么? #
242240次浏览 1499人参与
# 职场新人体验 #
152833次浏览 1112人参与
# 跳槽时有那些注意事项 #
113303次浏览 581人参与
# 腾讯工作体验 #
536812次浏览 3614人参与
# 互联网公司爆料 #
156030次浏览 720人参与
# 2025年终总结 #
23259次浏览 316人参与
# 实习必须要去大厂吗? #
161904次浏览 1604人参与
# 秋招被确诊为…… #
273479次浏览 1570人参与
# 你会为了工作牺牲生活吗? #
64495次浏览 434人参与
# 实习中的菜狗时刻 #
449958次浏览 3517人参与
# 如果上班像打游戏,你最想解锁什么技能 #
16766次浏览 88人参与
阿里云工作强度 702人发布