http 2.0 前瞻
虽然 http 2.0 暂时还未大面积推广使用,但是大家已经看到了未来的光明。
与 HTTP 1.1 相比,主要区别包括
- HTTP/2 采用二进制格式而非文本格式
- HTTP/2 是完全多路复用的,而非有序并阻塞的——只需一个连接即可实现并行
- 使用报头压缩,HTTP/2 降低了开销
- HTTP/2 让服务器可以将响应主动 推送 到客户端缓存中
如果要部署 HTTP/2,首先需要将网站升级为 HTTPS
HTTP/2 协议本身并没有要求必须基于 TLS 部署,但当前所有浏览器均只支持 HTTP/2 Over TLS。这样做一方面更安全,另一方面利用 TLS 的加密机制可以更好地穿透网络中间节点。
HTTP/2 支持程度
- 目前支持 HTTP/2 的浏览器有 Chrome 41+、Firefox 36+、Safari 9+、Windows 10 上的 IE 11 和 Edge。
- 服务器方面则有 F5、H2O、nghttp2 等数十种选择,各种语言实现的都有。
- Nginx 在 2015 年底也正式支持了
- 基本上可以说通用了
落后的浏览器咋办?
不支持 HTTP/2 的浏览器还能正常访问么,答案是能, HTTP/2 有自己的协议协商机制,根据浏览器与服务器的支持情况,直接或协商使用 http/2、或是降级使用 http 1.1
调试
不同于 HTTP/1 的文本格式报文,HTTP/2 传输的都是二进制帧,调试起来要麻烦一些。可以使用 chrome 扩展来协助调试
性能优化
服务端推送
HTTP/2 的多路复用特性,使得可以在一个连接上同时打开多个流,双向传输数据。Server Push,意味着服务端可以在发送页面 HTML 时主动推送其它资源,而不用等到浏览器解析到相应位置,发起请求再响应。另外,服务端主动推送的资源不是被内联在页面里,它们有自己独立的 URL,可以被浏览器缓存,当然也可以给其他页面使用。
服务端可以主动推送,客户端也有权利选择接收与否。如果服务端推送的资源已经被浏览器缓存过,浏览器可以通过发送 RST_STREAM
帧来拒收。
可以看到,HTTP/2 的 Server Push 能够很好地解决「如何让重要资源尽快加载」这个问题,一旦普及开来,可以取代前面介绍过的 HTTP/1 时代优化方案。
多路复用和头部压缩,减少带宽请求
总结
未来很美好,只是很遥远,估计 http 1.1,还得 10 年才会退出历史舞台。
以上是 http 2.0 前瞻 的全部内容, 来源链接: utcz.com/z/264308.html