HTTP2 和 HTTP1.1 的区别是什么?
参考答案:
HTTP/2与HTTP/1.1在多个方面存在显著的区别。以下是一些主要的差异:
- 传输方式:HTTP/2采用了二进制传输,它会把HTTP消息分解为互不依赖的帧,然后交错发送。这种方式使得HTTP/2可以并行交错地发送多个请求和响应,而且请求和响应之间互不影响。相比之下,HTTP/1.1采用的是基于文本的报文形式传输。
- 头部压缩:HTTP/2使用了专门为头部压缩而设计的HPACK算法。这个算法是有状态的,需要客户端和服务器各自维护一份索引表(或者说是字典)。压缩和解压缩的过程实际上就是查表和更新表的操作。而HTTP/1.1虽然可以用头字段“Content-Encoding”指定Body的编码方式(如gzip压缩),但报文的Header并不支持压缩。
- 多路复用:在HTTP/1.x中,如果想并发多个请求,必须使用多个TCP链接,且浏览器为了控制资源,还会对单个域名有6-8个的TCP链接请求限制。但在HTTP/2中,同域名下所有通信都在单个连接上完成,单个连接可以承载任意数量的双向数据流。这消除了因多个TCP连接而带来的延时和内存消耗。
- 使用的协议:HTTP/2在HTTP/1.1的基础上,增加了HPACK、Stream和TLS 1.2等协议的支持,使其具有更高的性能和安全性。
综上所述,HTTP/2在传输方式、头部压缩、多路复用以及协议使用方面相比HTTP/1.1有着显著的优势,这些优势使得HTTP/2在性能、效率和安全性上有了明显的提升。