前几天发现了一个对HTTP/2和HTTP/1.1之间比较直观的比较的演示,是Akamai公司给出的官方演示。https://http2.akamai.com/demo
HTTP/2 相比于之前的 HTTP/1.1 在性能上的大幅度提升。
而且,HTTP/2使用的是二进制传送,HTTP/1.1是文本(字符串)传送。二进制传送的单位是帧和流。帧组成了流,同时流还有流ID标示,因此有了多路复用的区别,因为有流ID,所以通过同一个http请求实现多个http请求传输变成了可能,可以通过流ID来标示究竟是哪个流从而定位到是哪个http请求。在 HTTP/1.1 协议中浏览器客户端在同一时间,针对同一域名下的请求有一定数量限制。超过限制数目的请求会被阻塞。
首部压缩:
HTTP2通过gzip和compress压缩头部然后再发送,同时客户端和服务器端同时维护一张头信息表,所有字段都记录在这张表中,这样后面每次传输只需要传输表里面的索引Id就行,通过索引ID就可以知道表头的值了。
HTTP/1.1并不支持HTTP首部压缩,为此SPDY和HTTP/2应运而生,HTTP/2使用了专门为首部压缩而设计的HPACK算法