环境:
intranet:两个相同的Web服务器、两个应用服务器、一个第4层交换机(负载均衡器)和一个SSL加速器正在工作,所有客户端(我的用户)都在使用Windows 7和Internet explorer。
我所面对的:
我的应用程序提供的服务通常需要3-7分钟来处理用户发出的HTTP请求,当处理时间超过5分钟时,客户端会自动发送与第一个请求(标头、正文)完全相同的HTTP请求。
我想知道的是:
我使用Wireshark捕获数据包,并知道发生了什么;当请求处理超过5分钟,客户端获得RST数据包并重新发送相同的请求时,服务器端(我还没有完全确定哪一层是确切的可疑层)发送一个RST数据包。
因此,它对一个超过5分钟的请求发出两个相同的重复请求。
我想知道的是:
在已经发送的TCP RST数据包上重新发送HTTP请求是正确的行为吗?我可以配置行为吗??
发布于 2019-04-16 16:37:32
这里的意见各不相同。对于幂等请求(例如HTTP "GET"),通常可以这样做,特别是如果到目前为止还没有从服务器获得任何有效的响应。对于非幂等请求(例如HTTP "PUT"),您应该向用户请求许可。
如果您碰巧知道,在您的场景中,重复请求不会有什么害处,那么只重复请求就可以了。
您应该限制重试次数,以免导致对自己的拒绝服务。
https://stackoverflow.com/questions/55699131
复制相似问题