HTTP资源预取

12 篇文章 0 订阅
4 篇文章 0 订阅
资源预取

preload
作为元素 的属性 rel 的值,表示用户十分有可能需要在当前浏览中加载目标资源,所以浏览器必须预先获取和缓存对应资源。 使用方式如下:

<head>
  <meta charset="utf-8">
  <link rel="preload" href="sintel-short.mp4" as="video" type="video/mp4">
</head>
<body>
  <video src="sintel-short.mp4" />
</body>

prefetch
作为元素 的属性 rel 的值,是为了提示浏览器,用户未来的浏览有可能需要加载目标资源,所以浏览器有可能通过事先获取和缓存对应资源,优化用户体验。

注意描述上的区别:preload是当前浏览器十分可能加载,所以必须预取和缓存的资源。prefetch 一般预加载的是其他页面会用到的资源。 因此,prefetch 不会像 preload 一样,在页面渲染的时候加载资源,而是利用浏览器空闲时间来下载。当进入下一页面,就可直接从 disk cache 里面取,既不影响当前页面的渲染,又提高了其他页面加载渲染的速度。

preconnect
是向浏览器提示用户可能需要来自目标资源源的资源,因此浏览器可以通过抢先启动与该源的连接来改善用户体验。
用户代理应尽可能尝试启动预连接并执行完整的连接握手(DNS+TCP 用于 HTTP,DNS+TCP+TLS 用于 HTTPS 源),但允许选择执行部分握手(DNS 仅用于 HTTP , 和 DNS 或 DNS+TCP 用于 HTTPS 来源),或完全跳过它,由于资源限制或其他原因。

此连接已获得但不直接使用。它将保留在 连接池中以供后续使用。

使用方式如下:

<link rel="preconnect" href="https://example.com">

DNS-prefetch
是尝试在请求资源之前解析域名。这可能是后面要加载的文件,也可能是用户尝试打开的链接目标。

dns-prefetch 仅对跨域域上的 DNS 查找有效,因此请避免使用它来指向您的站点或域。这是因为当你打开这个页面,本站域名已经完成解析。

使用方式:

<link rel="dns-prefetch" href="https://fonts.googleapis.com/"> 

prerender prerender 就像是在后台打开了一个隐藏的 tab,会下载所有的资源、创建DOM、渲染页面、执行js等等。如果用户进入指定的链接,隐藏的这个页面就会立马进入用户的视线。 但是要注意,一定要在十分确定用户会点击某个链接时才使用该特性,否则客户端会无端的下载很多资源和渲染这个页面。 正如任何提前动作一样,预判总是有一定风险出错。如果提前的动作是昂贵的(比如高CPU、耗电、占用带宽),就要谨慎使用了。

使用方法:

<link rel="prerender" href="https://example.com/content/to/prerender">

HTTP2

HTTP/2 是 HTTP 网络协议的一个重要版本。 HTTP / 2 的主要目标是通过启用完整的请求和响应多路复用来减少 延迟,通过有效压缩 HTTP 标头字段来最小化协议开销,并增加对请求优先级和服务器推送的支持。

  • 启动 HTTP/2(第 3 节)介绍了如何启动 HTTP/2 连接。
  • 帧(第4 节)和流(第 5 节)层描述了 HTTP/2 帧的结构和形成多路复用流的方式。
  • 帧(第 6 节)和错误(第 7 节) 定义包括 HTTP/2 中使用的帧和错误类型的详细信息。
  • HTTP 映射(第 8 节)和附加要求(第 9 节)描述了如何使用帧和流来表达 HTTP 语义。
HTTP连接

HTTP/2 over TLS 使用“h2”协议标识符。
一旦 TLS 协商完成,客户端和服务器都必须发送一个连接前言


参考资料:
http2:

  • https://www.rfc-editor.org/rfc/rfc7540.html(已过时)
  • https://www.rfc-editor.org/rfc/rfc9113.html(2022)
  • 协议抓包:https://blog.csdn.net/gaoliang1719/article/details/106030832
  • HPack:https://blog.csdn.net/weixin_38616298/article/details/108421371
  • HTTP3/队首阻塞:https://blog.csdn.net/ccw_922/article/details/124501101
  • HTTP2:https://blog.csdn.net/qq_40276626/article/details/120412462
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值