HTTP2
更新时间:2020-07-14
概述
百度CDN已经支持HTTP/2协议,默认开启HTTP/2。用户在使用中,首先要确认开启HTTPS配置,确保HTTPS证书添加成功。用户通过百度智能云CDN API或CDN控制台开启HTTPS配置,配置成功后便可使用HTTP/2。
HTTP/2原理
HTTP/2是HTTP的新版本,由IETF于2015年5月以RFC 7540正式发表。它主要基于SPDY协议,在请求方式、状态码、URI和多数HTTP Header字段都和HTTP/1.1 保持高度兼容,并在此基础上有下述优化,提高浏览器的页面加载速度、减少网络延迟:
- 单个长连接:单一页面可一直复用一个连接,无需新建连接,可优化由于创建多个TCP连接导致的时延,提高吞吐量。
- 多路复用:在单个连接中,多个请求或响应可同时存在于多个独立的stream上,避免HOL堵塞(Head of Line Blocking)。
- 优先级排序:对请求标记依赖层级,相同层级支持对请求和响应按优先级排序,Server可依次排序填充数据,提高特定请求的响应速度。
- 头部压缩和二进制编码:HTTP/2新引入HPACK算法,用于对HTTP头部做压缩,以减少头部数据的传输。此外,HTTP头部使用二进制编码进行传输,替代HTTP/1.x中的纯文本传输。
- 服务器推送:服务端向客户端发送比客户端请求更多的数据,即允许服务器直接提供浏览器渲染页面所需资源,无需浏览器收到或解析页面后再提起一轮请求,节约加载时间。
- SSL加密:主流浏览器支持的HTTP/2均基于SSL加密,在保证性能的前提下使网站更安全。在ALPN的支持下,客户端可以主动选择使用HTTP/2还是HTTP/1.1,提高兼容性。
HTTP/2优势
HTTP/2允许在同一连接上交替发送请求和响应消息,使用高效率的编码HTTP Header字段,可对请求定义优先级、快速响应更重要的请求。此协议减少了TCP连接的建立,与其他流更少的竞争和更长时间的链接,可有效提高网络容量的利用率。
- 高效:头部压缩和二进制编码提高了请求和响应的效率,多路复用可避免HOL堵塞。
- 灵活:通过定义请求的优先级,可以快速获取更重要的响应请求。
- 快速:服务器推送可预先获得服务器推送至客户端的资源,提高网页加载速度。
- 安全:主流浏览器均支持基于TLS加密的HTTP/2协议,保证客户网站的安全性。