我很困惑,因为它看起来对我来说就像不同的来源说不同的事情,我真的不明白它:
“层”是指在套接字接口和暴露给我们的应用程序的更高的 HTTP API 之间引入新的优化编码机制的设计选择:HTTP 语义,例如动词、方法和标头,不受影响,但它们的方式不同之处在于在运输过程中进行编码。与换行符分隔的纯文本 HTTP/1.x 协议不同,所有 HTTP/2 通信都分为更小的消息和帧,每个消息和帧都以二进制格式编码。因此,客户端和服务器都必须使用新的二进制编码机制来相互理解:HTTP/1.x 客户端无法理解仅 HTTP/2 的服务器,反之亦然。
支持 HTTP/2 的客户端可以向服务器发送 HTTP/2 请求。但是,如果服务器仅支持 HTTP/1.1 并且不理解 HTTP/2,它将使用 HTTP/1.1 响应进行响应。当客户端尝试对尚未采用较新的 HTTP/2 协议的服务器使用该协议时,可能会发生这种情况。
我了解到它们有不同的数据格式:HTTP 1.1 包含文本,而 HTTP 2 包含二进制数据。我尝试用谷歌搜索它,甚至尝试翻译它,因为英语不是我的母语。
我还发现如果 HTTP/1.1 客户端与仅 HTTP/2 服务器通信会怎样,如果 HTTP/2 客户端与仅 HTTP/1.1 服务器通信会怎样?
HTTP2 中还有用于标头压缩的帧和表