原文: HTTP/2 is the future of the Web, and it is already here!
HTTP/2对于我们来说,变得越来越具体了,标准刚刚完善,主流的浏览器纷纷开始支持它,但是为什么 HTTP/2 有如此的魅力,如此重要呢?
web 在过去的二十年中迅速的发展,但是现在看来 HTTP 有些不堪重负了,虽然Web 开发者围绕 HTTP 的局限性开展了很多的工作,即便如此:
- 带宽利用还是不够充分,性能有缺陷。
- 网站的设计和维护都比较复杂。
- 客户端和服务器上的资源消耗日益增长。
- 资源的缓存能力受到影响。
HTTP/2 试图解决很多 HTTP/1.1 中的缺点和问题。
他包括有很多的优点:
- 复用和并发性:多个请求可以在同一个TCP连接中快速连续的发送,并且响应的返回也因此避免了之前客户端和服务器因为多个连接而造成的问题。
- 数据流依赖:客户端能够通知服务器在所有的资源中,哪些相对更加重要。
- 头压缩: 大大降低了 HTTP 请求头的尺寸。
- 服务器推送:服务器能够主动推送客户端还没有请求的资源。
你不需要修改自己的网站和应用程序来保证他们在 HTTP/2 下能够正常工作,不但不需要修改你的应用程序代码和 HTTP API,而且你的应用程序甚至能够有更好的表现,消耗客户端和服务器上的资源更少。
当 HTTP/2 变的越来越流行,使用越来越普遍的情况下,一些在 HTTP/2 的高性能和高安全性方面受益的组织开始思考他们如何利用这些新功能来获取更大的收益,这些考虑的因素包括:
- 加密:运行在 HTTP/2 上的应用有可能提升安全连接的性能,这是企业考虑迁移到TLS的重要考虑因素
- 优化TCP层:应用程序应该设计成通过 TCP 层来将多个 TCP 连接切换为一个长连接,在由于响应阻塞造成数据包丢失的情况下尤其应该这么搞。
- 一些 HTTP/1.1 时期的最佳实践可能不再适用:很多符合“最佳实践”的应用程序是建立在 HTTP/1.1 基础上的(比如域名散列-domain sharding, 合并图片-image spriting, 资源内联和合并)。在 HTTP/2 的基础上,这些优化手段就没必要了,在某些情况下,他们可能还会影响优化效果。
- 主动推送什么内容以及何时推送:HTTP/2 提供了服务器主动推送资源的功能,应用程序必须要精心设计,才能充分利用这个功能来平衡性能和效力。
扫码关注w3ctech微信公众号