gpt4 book ai didi

http2 - 如果 HTTP/1.1 客户端与仅 HTTP/2 的服务器通信会怎样,如果 HTTP/2 客户端与仅 HTTP/1.1 的服务器通信会怎样?

转载 作者:行者123 更新时间:2023-12-04 05:06:26 27 4
gpt4 key购买 nike

HTTP/2 绝对是 future 的趋势,因为它现在是 HTTP 协议(protocol)的标准。正如我们在 Can I use 中看到的那样, 70.15% 的浏览器支持 HTTP/2。但是 HTTP/2 太新了,有浏览器只支持 HTTP/1.x,也有很多服务器只支持 HTTP/1.x。我知道客户端可以使用 HTTP 升级机制来协商一个适当的协议(protocol)来与服务器通信。例如,如果服务器支持 HTTP/2,他们的通信协议(protocol)将切换到 HTTP/2,否则,使用 HTTP/1.x。但这仅适用于客户端使用的浏览器同时支持 HTTP/2 和 HTTP/1.x 的情况,对吧?

但是,如果只支持 HTTP/1.x 的浏览器上的用户想要与仅支持 HTTP/2 的服务器通信怎么办?服务器会忽略请求还是将错误发送回用户?

如果仅支持 HTTP/2 的浏览器上的用户想要与仅支持 HTTP/1.1 的服务器通信怎么办?我在想这个过程可能是这样的:用户向服务器发送连接前言,服务器无法识别请求,因此用户可能会收到连接错误消息。这是正确的吗?

或者有没有只支持 HTTP/2 的浏览器?

最佳答案

重要的是要考虑到 HTTP/2 的大多数实现通过 TLS 1.2 和 ALPN 协议(protocol)(应用层协议(protocol)协商)使用它。因此客户端只需启动标准 TLS 连接。作为这种通信的一部分,客户端向服务器发送“Client Hello”和一些信息:

enter image description here

就像:“嗨,汤姆!我是鲍勃。我会说德语、俄语和英语。我们聊聊吧”。服务器发送“Server Hello”:

enter image description here

“嗨,鲍勃!我建议说德语或英语”。然后客户端再发送一条短消息“OK,那我们说德语吧”,他开始说德语,而无需等待服务器的任何响应:

enter image description here

整个通信如下图所示

enter image description here

因为客户端和服务器都只使用 TLS 1.2 开始通信,双方都知道。他们开始了主要的交流协议(protocol)协商后 .因此,您所描述的问题在实践中是不存在的。

关于http2 - 如果 HTTP/1.1 客户端与仅 HTTP/2 的服务器通信会怎样,如果 HTTP/2 客户端与仅 HTTP/1.1 的服务器通信会怎样?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36500050/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com