HTTP/2 对反向代理服务器意味着什么?
What does HTTP/2 mean for a reverse proxy server?
HTTP/2如何影响代理服务器的实施?特别是,例如,当客户端向仅支持 HTTP/1.x 的内容服务器发送 HTTP/2 请求时,代理服务器是否应将 HTTP/2 请求转换为 HTTP/1。 x 请求在将客户端请求定向到内容服务器之前?在收到内容服务器的响应后,代理服务器是否应该在将响应发送回客户端之前将其转换为 HTTP/2 格式?
对,就是你说的那样。从 HTTP/2 到 HTTP/1.1 的转换必须发生在一个方向上,而从 HTTP/1.1 到 HTTP/2 的转换必须发生在另一个方向上。
实际上这意味着虽然 HTTP/2 协议不需要传统的基于文本的解析器,但综合 HTTP/2 服务器需要 HTTP/1.1 解析器,不仅与仅 HTTP/1.1 的客户端(其中包括爬虫)一起工作,但也用于与内部应用程序对话。
从用途上看,最重要的应用协议之一是FastCGI。 FastCGI 还需要解析来自应用程序的 HTTP/1.1 响应并转换为 HTTP/2 响应给客户端。
正如设计所讨论的那样,您的理解是正确的。
不过,我认为值得指出的是 HTTP/2 在边缘连接(即反向代理)方面仍有巨大优势,因为 HTTP/2 解决的问题(主要是延迟)较少从反向代理到内容服务器的通常较短、通常高带宽的跃点存在问题。
例如,如果您到边缘的反向代理有 100 毫秒的延迟,而反向代理和内容服务器之间只有 1 毫秒的延迟,那么内容服务器正在与 HTTP/1.1 通话由于超快的 1 毫秒延迟,代理服务器可能不会对性能产生太大影响。因此,最终客户端(与反向代理对话 HTTP/2)仍然会看到比 HTTP/1.1.
更高的性能
HTTP/2如何影响代理服务器的实施?特别是,例如,当客户端向仅支持 HTTP/1.x 的内容服务器发送 HTTP/2 请求时,代理服务器是否应将 HTTP/2 请求转换为 HTTP/1。 x 请求在将客户端请求定向到内容服务器之前?在收到内容服务器的响应后,代理服务器是否应该在将响应发送回客户端之前将其转换为 HTTP/2 格式?
对,就是你说的那样。从 HTTP/2 到 HTTP/1.1 的转换必须发生在一个方向上,而从 HTTP/1.1 到 HTTP/2 的转换必须发生在另一个方向上。
实际上这意味着虽然 HTTP/2 协议不需要传统的基于文本的解析器,但综合 HTTP/2 服务器需要 HTTP/1.1 解析器,不仅与仅 HTTP/1.1 的客户端(其中包括爬虫)一起工作,但也用于与内部应用程序对话。
从用途上看,最重要的应用协议之一是FastCGI。 FastCGI 还需要解析来自应用程序的 HTTP/1.1 响应并转换为 HTTP/2 响应给客户端。
正如设计所讨论的那样,您的理解是正确的。
不过,我认为值得指出的是 HTTP/2 在边缘连接(即反向代理)方面仍有巨大优势,因为 HTTP/2 解决的问题(主要是延迟)较少从反向代理到内容服务器的通常较短、通常高带宽的跃点存在问题。
例如,如果您到边缘的反向代理有 100 毫秒的延迟,而反向代理和内容服务器之间只有 1 毫秒的延迟,那么内容服务器正在与 HTTP/1.1 通话由于超快的 1 毫秒延迟,代理服务器可能不会对性能产生太大影响。因此,最终客户端(与反向代理对话 HTTP/2)仍然会看到比 HTTP/1.1.
更高的性能