关键资源和前 14 KB - 综述

主要观点:许多网页性能专家建议将所有关键资源放在网页的前 14KB 中,但实际上 14KB 这个数字在现代网络环境中已不那么相关。
关键信息

  • TCP 协议下,每个 TCP 数据包最多 1500 字节,其中 40 字节用于 TCP 自身,实际数据为 1460 字节,10 个数据包约 14KB。
  • 网络速度快,但用户缺乏耐心,等待确认会导致性能瓶颈,将关键数据放在前 14KB 可让浏览器尽早开始工作。
  • HTML 可边下载边被浏览器处理,前 14KB 包含更多关键数据能让浏览器更早开始工作。
  • 14KB 建议存在假设不现实的问题,如 HTTP 响应头可能很大、HTTPS 和 HTTP/2 需额外消息交换、TCP 数据包发送数量并非固定为 10 等。
  • 实际生活中,通过 Wireshark 捕获 Amazon 网站的网络流量发现,实际发送的数据包远超 10 个,前 14KB 并非仅用于 HTML 等。
    重要细节
  • Twitter 的 Content Security Policy 头约 5KB 大,HTTP/2 可压缩响应头但首次请求基本使用全尺寸头。
  • HTTPS 建立 TLS 连接需至少 2 个往返,TLSv1.3 可 1 个往返甚至 0 往返,但证书可能较大。
  • HTTP/2 需多个消息交换建立连接,且每个帧有至少 9 字节头,会占用初始 10 个 TCP 数据包的限制。
  • 不同操作系统的 TCP 数据包发送数量限制不同,现代系统至少 14KB,一些 CDN 甚至更高。
  • TCP 实际使用并非严格按照理论,通常会在发送 HTML 前已超过 10KB 发送量,且 HTML 可压缩。
  • 通过 Wireshark 捕获 Amazon 网站流量的示例展示了实际网络中的大量 TCP 消息交换情况。
阅读 7
0 条评论