页面资源加载过程/浏览器输入一个地址时发生了什么

1.加载资源的第一步就是进行url解析,提取出里面的信息。

2.然后,拿到上一步解析出来的域名,去DNS服务器上查找该域名对应的ip。

3.带着所有的请求信息去这个IP地址请求资源,再服务器上把请求的资源下载回来,

4.最后根据不同的资源进行不同的解析


url包括:协议,域名,端口,路径,参数,哈希(前端页面的锚点,标记页面位置)



dns缓存
dns优化:

dns_prefetch:再<head>中的加入

<link rel="dns-prefetch" href="img.XXXX.com">

他的原理是再页面一加载时就把href里面的网址进行dns查询,并且缓存起来。等到真正请求时就会省去查询的时间。



资源请求:

请求的资源可以是html.css.js.接口等。

发起请求时浏览器带着信息去后端服务器上寻找资源。这个请求包含:1.request-header,也就是请求头,里面包含了我要请求谁,我从哪来,我想要得到什么样的数据,我用的什么浏览器,还有比较重要的cookie。2.请求带的参数。一般get请求在url 里;post请求会在参数的body里。当这些信息到达服务器,服务器会根据信息找到匹配的资源。然后返回给浏览器。返回的信息包括1.状态码:表示请求是否成功。2.response-header:响应头。表示响应信息,包含文本长度,响应时间,压缩方式,还有响应内容:如果是图片,内容就是图片信息;如果是接口,内容就是json字符串。


浏览器解析:

一般最先加载是一个HTML文件。在加载html的同时就开始构建DOM树了,遇到一个HTML节点就把它放到树里。

假如加载html时,遇到一个js文件,那么就需要先暂时停下构建DOM树的工作。先加载和执行js文件。而js有高的优先级是因为,它可以做DOM元素,就可能导致之前构造的DOM都白干了。所以要等js执行完成后,在继续构建DOM树,若遇到style标签就不会造成堵塞,dom树 的构建与样式的加载时并行进行的。构造完dom树后,会进行构造渲染树。渲染树是dom树与css样式的结合的产物,这个渲染树在不同的浏览器构造的机制也不一样。比如chrome用的webkit内核是在原来的DOM树上附属一些样式。而Firefox是根据DOM树和样式表重新构建出一个渲染树,渲染树构建好后每个元素的大小,布局方式也就确定了。然后根据每个元素的大小,布局方式计算出元素的实际位置。然后进行绘制,调用浏览器负责显示的部分,将元素按照对应的位置和样式绘制在屏幕上

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值