浏览器内核分析3 -- 资源加载和网络栈

本文深入探讨浏览器内核中的资源加载过程,包括同步与异步加载、缓存机制、Chromium的资源加载管理及网络栈。重点讨论了DNS预取、TCP预连接、HTTP管线化和SPDY协议在提升网络性能上的应用。
摘要由CSDN通过智能技术生成

1 网络资源

资源加载器

网页加载中需要获取的资源文件很多,有HTML,JavaScript,CSS,图片,SVG,CSS Shader,视频音频字幕,字体文件,XSL样式表等。不同资源有不同的加载器,主要分为三类:

  1. 特定资源加载器:处理特定资源请求,如ImageLoader FontLoader
  2. 缓存资源加载器:从内存中获取资源,CachedResourceLoader
  3. 通用资源加载器:从网络或硬盘中获取资源,ResourceLoader

同步与异步

HTML解析时,可能会碰到很多资源需要加载。这个时候,CSS和PNG等资源会开启异步线程去加载,不会打断HTML解析。而JS文件则会阻塞HTML解析,因为JS可能会改变DOM结构。虽然WebKit使用了预取技术来优化这个问题,但还是建议将js文件放在HTML的末尾。

缓存机制

Webkit使用了一个资源缓存池来缓存资源。以URL为key,就算资源内容完全相同,URL不同也会认为是两个不同的资源。每次资源请求时,先在缓存池中寻找资源,未命中才发起http等请求。这里也会遇到大多数缓存策略碰到的问题&

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

谢杨易

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值