与 Http keep alive 相关的有两个标头:
Connection: Keep-Alive
Keep-Alive: timeout=5, max=1000
- 哪一方发送HTTP1.1的“Keep-Alive: param”?
- 当客户端和服务器使用HTTP1.1时,客户端会发送TCP保持活动探测吗?
- 为了使用HTTP1.1保持活动,客户端必须设置
Connection: Keep-Alive
或Keep-Alive: param
吗?
我有以上问题是因为:
最近我在使用http客户端时遇到了一个问题。自上次客户端发送请求后的2个小时内,一旦客户端发送请求,就再也听不到来自服务器的响应。为了找到原因,我做了以下事情:
- 在客户端和服务器两侧运行tcpdump。
- 客户端发送一个请求(并接收响应)
- 等待2个小时
- 客户端发送另一个请求(但没有收到任何响应)<--这是问题所在。
在两个请求之间,两侧的pcap都没有显示任何人发送FIN。服务器也没有收到第二个请求。我认为HTTP1.1保持活动传输出现了问题。