http203

CloudFlare已启用HTTP/2和SPDY

今早收到来自CloudFlare的邮件,说是已经给你默认启用了HTTP/2,可以全面提升HTTPS下的页面加载速度。我只知道有个SPDY,另外HTTP/2貌似是最近这几年才出来的产物,Nginx 1.9.5 版本加入了对HTTP/2的支持。趁着头脑清醒,赶紧上维基百科扫盲。然而维基上相关介绍非常少,但是透过CloudFlare的网页介绍能略知一二。http202

HTTP/2是什么?

HTTP/2(超文本传输协议第2版,最初命名为HTTP 2.0),是HTTP协议的的第二个主要版本,使用于万维网。HTTP/2是HTTP协议自1999年HTTP 1.1发布后的首个更新,主要基于SPDY协议。它由互联网工程任务组(IETF)的Hypertext Transfer Protocol Bis(httpbis)工作小组进行开发。该组织于2014年12月将HTTP/2标准提议递交至IESG进行讨论,于2015年2月17日被批准。HTTP/2标准于2015年5月以RFC 7540正式发表。

HTTP/2的目标包括异步连接复用,头压缩和请求反馈管线化并保留与HTTP 1.1的完全语义兼容。

SPDY是什么?

SPDY(发音如英语:speedy),一种开放的网络传输协定,由Google开发,用来传送网页内容。基于传输控制协议(TCP)的应用层协议 。Google最早是在Chromium中提出的SPDY协议。目前已经被用于Google Chrome浏览器中来访问Google的SSL加密服务。

HTTP/2主要以SPDY技术为主。Google Chrome,Mozilla Firefox,Opera和Internet Explorer均已支持SPDY协议。SPDY协议类似于HTTP,但旨在缩短网页的加载时间和提高安全性。SPDY协议通过压缩、多路复用和优先级来缩短加载时间。

它们的作用是什么?

如前文所述,二者的作用旨在提升访问速度。设计SPDY的目的在于降低网页的加载时间。通过优先级和多路复用,SPDY使得只需要建立一个TCP连接即可传送网页内容及图片等资源。SPDY中广泛应用了TLS加密,传输内容也均以gzip或DEFLATE格式压缩(与HTTP不同,HTTP的头部并不会被压缩)。另外,除了像HTTP的网页服务器被动的等待浏览器发起请求外,SPDY的网页服务器还可以主动推送内容。而CloudFlare作为一个处于用户和服务器之间的反向代理,它对HTTP/2和SPDY的支持使得用户对CloudFlare的访问速度进一步提升,用户无需对自己的服务器做任何更改。

尽管HTTP/2基于谷歌的实验性SPDY协议,但是它在不断改进。SPDY的诸多好处被保留下来:

  • 多路复用:多个请求被整合至一个TCP连接之中,减少服务器与用户之间的多重连接数量以提升效率。http201
  • 串流优先级:客户端可以指定哪些资源请求可被优先处理。
  • 压缩Header:减小header的体积。
  • 主动推送:在客户端尚未对某些资源发出请求时,服务器可以抢先作出回应。(当前Nginx和CF并未实施,未来会加入这一功能。)

尽管HTTP/2并不要求TLS,但是一些主要的浏览器厂商已经表示,他们将会只支持使用TLS加密技术使用HTTP/2。

演示对比:HTTP/1.1 VS HTTP/2

https://www.cloudflare.com/http2/

抛弃SPDY?

言之过早。不论SPDY还是HTTP/2,都对网站速度提升有好处。支持SPDY的浏览器还很多,所以保持对二者同时支持还是很有必要的。

大陆用户的纠结

我们都知道,CloudFlare是一个提供CDN的网站,它在香港有一个加速节点。但是经过测试得知,大陆用户访问通过CF的CDN加速的网站时,并不会通过香港的节点加速,而是绕道美国的一个节点。这样CDN加速的意义实际上已经不存在了。顶多也就是如果你的海外主机不稳定的话,开启CDN可能会稍微改善访问体验。

 

本文参考资料:

https://blog.cloudflare.com/introducing-http2/

https://zh.wikipedia.org/wiki/SPDY

https://zh.wikipedia.org/wiki/HTTP/2

 

 

 

  1. Pingback: 升级LNMP一键安装包以支持HTTP/2 – Log@X.X.B

  2. Pingback: 升级LNMP一键安装包以支持HTTP/2 | 好窝博客

  3. Pingback: 开启HSTS (HTTP Strict Transport Security)的重要性 | 好窝博客

    • 我用的军哥的一键安装包,nginx版本为1.8,请教如何升级到支持http/2的版本?

      • 凡是编译出来的文件都不能用yum或者apt-get这些包管理工具来升级吧,
        你得重新编译。
        nginx好像得在1.92之后才支持http/2,要编译的话网上有很多教程,注意输出位置就行了

        • 已经编译成功。升级Nginx到最新的1.9.9了,然后把http2模块加进去就ok

  4. 先说说我的烦恼吧,为了来你这一趟,我冒着生命危险呐,翻墙时一不小心踏空后果不敢想。点与点之间的这点距离我们都需要跨千山越万水,更何况新技术层面的东西,咱们的公仆们巴不得把咱往小黑屋一关,寂寞的时候就拉出来溜溜

  5. CloudFlare我也付费用过,的确是绕道美国而不走香港节点,有时候甚至走的欧洲节点,于是我就申请退款了。感觉一个月20美元还是把配置加高点好一点。

    • 所以我一直在观望,这种逆天的bug如果哪天解决了估计不少国人都会去付费了。

    • 年初的时候就有尝试过,的确是一个比较完美的的DNS服务商——如果大陆ip不绕道美国的话。

  6. 还是不明白这个http/2到底是个啥,对我们有啥好处。反正Cloudflare离我越来越远了。

  7. SPDY推广的进程走得挺好的,比相像中快。不过对于国内满屏飞跨域广告的情况改善不大,貌似,呵呵。

    • 主流的谷歌、微软什么的都可以吧,毕竟SPDY协议日趋国际化标准了。

  8. 我昨天也收到邮件了,CF支持http2,免费的CDN里面只有CF对ssl支持的最好了!

轻轻地,你来了,请留下你的脚印。