HTTP/2

HTTP/2与HTTP/1.1比较

HTTP/2 相比HTTP/1.1 的修改并不会破坏现有程序的工作，但是新的程序可以借由新特性得到更好的速度。
HTTP/2 保留了HTTP/1.1 的大部分语义，例如请求方法、状态码乃至URI和绝大多数HTTP头部字段一致。而 HTTP/2 采用了新的方法来编码、传输 客户端<——>服务器 间的数据。

HTTP/2与SPDY的比较

HTTP/2的开发基于SPDY进行跃进式改进。在诸多修改中，最显著的改进在于，HTTP/2使用了一份经过定制的压缩算法，基于霍夫曼编码，以此替代了SPDY的动态流压缩算法，以避免对协议的Oracle攻击——这一类攻击以CRIME为代表。此外，HTTP/2禁用了诸多加密包，以保证基于TLS的连接的前向安全。

新特性

在 HTTP/2 的第一版草案（对 SPDY 协议的复刻）中，新增的性能改进不仅包括HTTP/1.1中已有的多路复用，修复队头阻塞问题，允许设置设定请求优先级，还包含了一个头部压缩算法(HPACK)。此外， HTTP/2 采用了二进制而非明文来打包、传输 客户端<——>服务器 间的数据。

帧、消息、流和TCP连接

有别于HTTP/1.1在连接中的明文请求，HTTP/2与SPDY一样，将一个TCP连接分为若干个流（Stream），每个流中可以传输若干消息（Message），每个消息由若干最小的二进制帧（Frame）组成。这也是HTTP/1.1与HTTP/2最大的区别所在。
HTTP/2中，每个用户的操作行为被分配了一个流编号(stream ID)，这意味着用户与服务端之间创建了一个TCP通道；协议将每个请求分割为二进制的控制帧与数据帧部分，以便解析。这个举措在SPDY中的实践表明，相比HTTP/1.1，新页面加载可以加快11.81% 到 47.7%

服务器推送

网站为了使请求数减少，通常采用对页面上的图片、脚本进行极简化处理。但是，这一举措十分不方便，也不高效，依然需要诸多HTTP链接来加载页面和页面资源。
HTTP/2引入了服务器推送，即服务端向客户端发送比客户端请求更多的数据。这允许服务器直接提供浏览器渲染页面所需资源，而无须浏览器在收到、解析页面后再提起一轮请求，节约了加载时间。

h2c 的支持度

HTTP/2 的设计本身允许非加密的HTTP 协议，也允许使用TLS 1.2 或更新版本协议进行加密。协议本身未要求必须使用加密， 惟多数客户端(例如 Firefox, Chrome, Safari, Opera, IE, Edge) 的开发者声明，他们只会实现通过TLS加密的HTTP/2协议，这使得经TLS加密的HTTP/2(即h2)成为了事实上的强制标准，而h2c事实上被主流浏览器废弃。

SPDY 退出历史舞台

2015年9月，Google 宣布了计划，移除对SPDY的支持，拥抱 HTTP/2，并将在Chrome 51中生效。

HTTP/2 的实现

HTTP/2 工作组在其官方Github 上罗列了诸多已经支持该协议的代码实现。

批评与争议

HTTP/2的开发过程乃至协议本身都曾受到批评。

针对协议开发本身

FreeBSD和Varnish cache的开发者保罗-恒宁·坎瀑批评称，这个标准文件的准备过程短得不切实际，而且未基于除了SPDY之外的任何协议，以至于其他协议失去了对草案进行改进的机会。Kampala批评说，这个协议本身与HTTP不一致，而且还毫无必要地变得极为复杂。他还认为，这个协议违背了互联网协议的分层原则，例如说，将本属于TCP传输层的流控制(flow control)功能放入了协议中。

针对加密的争议

一开始，以HTTP工作组某位主席为首的成员在邮件列表建议引入强制使用TLS协议实现的HTTP/2.0（Mandatory TLS in HTTP/2.0），这招致了争议。批评者认为，加密增加了十分不必要的开销，而且很多HTTP服务实际上无需加密，提供者也无意为此花费更多的资源。而支持者认为，实践中TLS加密的开销微不足道。
Poul-Henning Kamp 批评IETF在制定HTTP/2时，遵循了一个特定的“政治议程”（political agenda），压缩了讨论的空间。
强制加密议程的批评者认为，其基于现有的证书框架，对于开源社区并非新创造，亦不是独特的。2013年，一位思科员工表示，现有证书模型与路由器一类的小型化设备并不兼容，因为现有的证书框架需要为每张证书付出不可避免的成本，还需要进行每年更新的流程。工作组最终未能在强制加密这一点上达成一致，但是大部分客户端只实现了基于TLS的HTTP/2，使之成为事实标准。
HTTP/2也被批评未能支持机会性加密，即类似SMTP中存在已久的STARTTLS一样能抵御被动监控的措施。 批评者指出，HTTP/2的提议违背了IETF自身制定的《最佳实践188》（BCP 188） 即 RFC 7258。这份文件指出，被动监控应被当作一种攻击，IETF指定的标准应当设置抵御这种攻击的措施（例如机会性加密）。当前，已经有一系列机会性加密规范被提出，工作组也制定了draft-ietf-httpbis-http2-encryption-01 这一官方版方案。