从输入URL到页面展示的详细过程

upload successful

1.输入网址

url:统一资源定位符,用于定位互联网综上的资源
url构成:协议类型://<主机名>:<端口>/<路径>/文件名?参数名#锚点

2.浏览器查找域名的IP地址(域名解析)

浏览器缓存
浏览器会检查缓存中有没有这个域名对应的解析过的IP地址,如果缓存中有,这个解析过程就将结束
系统缓存
浏览器会查看本地硬盘的 hosts 文件,看看其中有没有和这个域名对应的规则,如果有的话就直接使用 hosts 文件里面的 ip 地址。
路由器缓存
如果系统缓存中也找不到,那么查询请求就会发向路由器,路由器一般会有自己的DNS缓存。
ISP DNS 缓存(域名商的域名解析系统)
如果在hosts文件中也没有找到对应的条目,浏览器就会发起一个DNS的系统调用,就会向
本地配置的首选DNS服务器(一般是运营商提供的)发起域名解析请求,(通过的是UDP协议向DNS的53端口发起请求,这个请求是递归的请求,也就是运营商的DNS服务器必须得提供给我们该域名的IP地址),运营商的DNS服务器首先查找自身的缓存,找到对应的条目,且没有过期,则解析成功。
如果都没有找到,则运营商的DNS代浏览器发起迭代DNS解析请求,查找域名对应 IP(见图)

upload successful

3.通过IP向服务器发起TCP连接

upload successful

4.服务器接受请求

5.服务器处理请求返回相应文件

upload successful

6.页面渲染

(1)解析HTML文件,创建DOM树(解析执行JS脚本时,会停止解析后续HTML)

(2)解析CSS,形成CSS对象模型

(3)将CSS与DOM合并,构建渲染树

(4)布局渲染树

(5)绘制渲染树(可能触发回流和重绘)

upload successful

7.页面加载完毕


更详细的内容可以跳转到这篇博客


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!