简介

超文本传输协议(HTTP)是管理服务器与网站访问者浏览器之间连接的协议,自1999年第一次使用以来,这个协议承诺为每个人提供更快的网站。
HTTP是一种旧协议,最初定义于1991年,最后一次主要修订版 - HTTP /1.1–于1999年发布。
1999年的网站与我们今天开发的网站截然不同,在http2解释中,Daniel Sternberg指出,加载普通网站主页所需的数据量为1.9 MB,显示页面需要100多个独立资源 - “资源”是指来自图像或字体的任何内容到 或CSS文件。

\"http/2

SPDY

2009年,Google的两名工程师发布了他们一直在研究的名为SPDY的研究项目,该项目解决了HTTP/1.1中的一些问题。SPDY开始:

允许跨单个TCP连接的并发请求,称为多路复用;

允许浏览器确定资产的优先级,以便服务器首先发送对页面显示至关重要的资源;

压缩和减少HTTP标头;

实现服务器推送,服务器可以在被要求之前将重要资源推送到浏览器。

此外,SPDY需要浏览器和服务器之间的加密(HTTPS)连接。

SPDY不替代HTTP;相反,它是协议的隧道,并修改现有HTTP请求和响应的发送方式。它需要服务器和连接到该服务器的浏览器的支持。借助NGINX提供的支持以及Google提供的支持Apache的支持,可以合理地采用SPDY。浏览器支持也非常好,所有主流浏览器的现代版本都支持它。

我们已经看到SPDY取得了一些成功,并获得了服务器和浏览器的采用。但是,您可能也发现,尽管支持Internet Explorer 11,但Microsoft的Edge浏览器已将其删除。由于Microsoft实施了对HTTP协议(HTTP协议的最新版本)的支持,因此Edge中已经删除了对SPDY的支持。虽然其他当前浏览器仍然支持SPDY,但Chrome在2016年取消支持,其他浏览器可能会跟进。

HTTP2建立在SPDY的成功基础之上,SPDY被用作新协议的起点。因此,SPDY的大多数目标都在HTTP2中得到满足。已删除对HTTPS连接的要求,也就是说,所有浏览器厂商都决定只为TLS(https)连接实施http2。因此,虽然可能在服务器到服务器通信中使用带有明文的http2, 但我们向浏览器提供HTTP2的用例意味着需要让站点在https上运行,然后才能考虑转移到http2.

HTTP2规范于2015年2月完成,一年后,现代浏览器中支持这个协议非常出色,与SPDY一样,HTTP2需要在浏览器服务器级别上提供支持,已经有许多Web服务器实现。

对于很多网站来说,迁移到HTTP / 2最难的事情可能根本不是HTTP / 2,而是要求通过安全连接运行网站。如果正在开发新网站或更新旧网站,第一步应该是确保移至https开发,这不仅对http/2很重要,Google使用安全连接作为排名信号,浏览器开始将非https链接标记为“不安全”。将来你会发现一些强大的HTML5功能,例如地理定位,在没有安全连接的情况下是不可用的。

如果网站目前只 http, 那么建议是先优先迁移到https, 然后再决定http/2策略。

HTTP/2行动计划

  1. 使用安全连接启动或立即转移到TLS这应该是建站首要任务。

  2. 在构建过程中准备HTTP / 2。现在构建的任何网站都可能会受益于在其生命周期内针对HTTP / 2进行优化。

  3. 检查你的主机。需要确保服务器支持HTTP / 2,与你的托管服务提供商或服务器管理员联系,了解他们对HTTP / 2的优化。

  4. 推出HTTP / 2优化。一旦你的服务器支持HTTP / 2,其余的由你决定,停止使用旧的最佳做法并切换到新的。这意味着拥有不支持HTTP / 2的浏览器的用户将获得较慢的体验,这就是为什么更改背后的驱动程序应该是大多数人受益的转折点。

当转移到HTTP / 2时,对速度增加进行基准测试以及查看哪些技术在网站上产生最大差异然后把HTTP / 2使用到最佳体验。

收藏 打印