gpt4 book ai didi

apache - HTTP KeepAlive 连接被服务器关闭但客户端同时发送了一个请求

转载 作者:可可西里 更新时间:2023-11-01 17:32:29 25 4
gpt4 key购买 nike

场景如下:

  • 有一个 http 反向代理,它有一个与应用程序服务器的持久连接池。它已经收到来自客户端的请求,并在检查连接是否打开后向后端发出相同的请求
  • 与此同时,服务器在收到请求之前关闭了连接,代理因从后端读取错误而失败。
  • 向客户端发送错误。

应该如何处理这种竞争条件: - 所有连接关闭都应该由代理发起而不是由后端服务器发起? - 由于连接关闭而导致发送失败时,代理应该重试请求吗?

最佳答案

代理只是通过流量。如果服务器关闭了连接,proxy 也应该立即关闭它,即使有请求未决。但是,从客户端站点所​​描述的情况来看,服务器似乎没有为请求返回任何数据。这应该通过“保持事件”握手来防止。

在 HTTP 协议(protocol)中, header “Connection:”用于这种情况。如果客户端希望在处理请求后保持 TCP session 打开(因此可以在同一个 TCP session 中发送下一个 HTTP 请求),则客户端包括“Connection: Keep-Alive”。服务器仍可能回复“Connection: Close” header ,这意味着 TCP session 无论如何都会关闭。

关于apache - HTTP KeepAlive 连接被服务器关闭但客户端同时发送了一个请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38686828/

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