📜  HTTP/2 和 HTTP/1.1 的区别

📅  最后修改于: 2022-05-13 01:56:47.758000             🧑  作者: Mango

HTTP/2 和 HTTP/1.1 的区别

HTTP代表超文本传输协议,用于客户端-服务器通信。通过使用 HTTP 用户向服务器发送请求,服务器向用户发送响应。 HTTP 有几个发展阶段,但我们将主要关注于 1997 年创建的 HTTP/1.1,而新的一个是 2015 年创建的 HTTP/2。

HTTP/1.1:为了更好地理解,让我们假设您向服务器请求 geeksforgeeks.html 页面并且服务器以资源 geeksforgeeks.html 页面响应您的情况。在发送请求和响应之前,客户端和服务器之间建立了 TCP 连接。您再次向服务器发出请求以获取图像 img.jpg 并且服务器以图像 img.jpg 的形式给出响应。在第一次请求之后,这里的连接没有丢失,因为我们添加了一个 keep-alive 标头,它是请求的一部分,因此服务器和客户端之间有一个开放的连接。有一个持久连接,这意味着多个请求和响应合并在一个连接中。这些是导致创建 HTTP/2 的缺点: 第一个问题是 HTTP/1.1 以纯文本消息形式传输所有请求和响应。第二个是行头阻塞,其中 TCP 连接被阻塞所有其他请求,直到没有收到响应。在每个请求中都会重复与头文件相关的所有信息。

HTTP/2: HTTP/2 是基于 SPDY 协议开发的。 HTTP/2 在二进制框架层上工作,而不是在将所有消息转换为二进制格式的文本层上工作。它适用于完全多路复用,即一个 TCP 连接用于多个请求。 HTTP/2 使用 HPACK 用于从标头中拆分数据。它压缩标题。服务器在没有客户端请求的情况下使用 PUSH 帧发送所有其他文件,如 CSS 和 JS。

HTTP/1.1 和 HTTP/2 的区别在于:

HTTP/1.1

HTTP/2

Ithe usest works on the textual format.It works on the binary protocol.
There is head of line blocking that blocks all the requests behind it until it doesn’t get its all resources.It allows multiplexing so one TCP connection is required for multiple requests.
It uses requests resource Inlining for use getting multiple pagesIt uses PUSH frame by server that collects all multiple pages 
It compresses data by itself.It uses HPACK for data compression.