浏览器输入URL发生了什么?

输入URL --> URL解析+DNS域名解析 --> TCP三次握手 --> TCP四次挥手 --> 浏览器渲染

1.输入URL:首先判断输入的内容是否是一个网址,如果不是一个网址,则会默认使用浏览器的搜索引擎进行搜索并查询,如果是一个网址,就把这个URL发送给网络进程,首先会在缓存中去查找这个地址,如果缓存中没有找到输入的URL地址则会进行URL解析,解析出要请求的服务器ip地址

缓存的优先级:先在内存中查找,如果内存不存在,则在硬盘中查找,硬盘中也没有则进行网络请求,请求获取的资源再缓存到硬盘和内存中

2.DNS域名解析的目的是找到域名对应的ip地址

首先查看缓存中是否有解析过该URL的记录,如果没有,则本地DNS服务器转发请求,去外部查找对应的根域、顶级域、权威域;

查找缓存的优先级:客户端-->浏览器缓存-->本地host文件-->本地DNS解析的缓存-->本地DNS服务器转发请求(出去找)

3.TCP三次握手:由客户端向服务端发起创建一个TCP链接的请求

4.TCP四次挥手:由客户端向服务端发起断开一个TCP链接的请求

5.浏览器渲染:此时,已经拿到了对应资源的响应体,开始解析和渲染

解析页面步骤:

a.浏览器通过HTMLParser把HTML解析成dom tree(俗称dom树)

b.浏览器通过CSSParser将css解析成Style Rule Tree (俗称cssom树)

c.浏览器将JavaScript通过DOM API和CSSOM API将js代码解析并应用到布局中,根据dom树和cssom树来构造render树,并计算元素的布局信息

d.对render树进行分层,并生成分层树(layer tree)

e.最终render树就是整个页面的文档结构抽象显示,然后按要求呈现响应的效果

渲染引擎:主要负责取得网页的内容(html、XML、图像等等)、计算网页的显示方式,然后输出至浏览器,浏览器的内核不同对网页的语法解释也会有所不同,所以渲染的效果也不相同

js引擎:主要负责解析和执行JavaScript代码来实现网页的动态效果。

猜你喜欢

转载自blog.csdn.net/m0_46318298/article/details/128372875