Page 208 - Web性能权威指南
P. 208
൩൱#1 ൩൱#2
ᅙᆶ
ᅙᆶ
ᅙᆶ
ᅙᆶ
ᅙᆶ
HEADERSኡDŽstream 1Dž HEADERSኡDŽstream 3Dž
图 12-5:HTTP 2.0 首部的差异化编码
请求与响应首部的定义在 HTTP 2.0 中基本没有改变,只是所有首部键必须
全部小写,而且请求行要独立为 :method、:scheme、:host 和 :path 这些
键-值对。
在前面的例子中,第二个请求只需要发送变化了的路径首部(:path),其他首部没有变
化,不用再发送了。这样就可以避免传输冗余的首部,从而显著减少每个请求的开销。
通信期间几乎不会改变的通用键-值对(用户代理、可接受的媒体类型,等等)只
需发送一次。事实上,如果请求中不包含首部(例如对同一资源的轮询请求),那么
首部开销就是零字节。此时所有首部都自动使用之前请求发送的首部!
SPDY、CRIME 和 HTTP 2.0 压缩
SPDY 的早期版本使用 zlib 和自定义的字典压缩所有 HTTP 首部,可以减少
85%~88% 的首部开销,从而显著减少加载页面的时间:
在低速 DSL 连接中,上传速度只有 375 Kbit/s,仅压缩请求首部,即可
显著减少某些(需要发送大量资源请求的)站点的页面加载时间。我们
发现压缩首部可以节省 45~1142 ms 的页面加载时间。
——SPDY 白皮书,chromium.org
HTTP 2.0 | 193