短连接与长连接
Connection头部
- Keep-Alive:长连接
- 客户端请求长连接 : Connection: Keep-Alive
- 服务器表示支持长连接 :Connection: Keep-Alive
- 客户端复用连接
- HTTP/1.1默认支持长连接:Connection: Keep-Alive无意义
- Close:短连接
对代理服务器的要求
客户端长连接
- 代理服务器陈旧,不能正确处理请求的Connection头部,将客户端请求中的Connection: Keep-Alive原样转发给上游服务器
- 上游服务器正确处理了Connection头部,在发送响应后没有关闭连接,而试图保持、复用与不认长连接的代理服务器的连接
- 代理服务器收到响应中Connection:Keep-Alive后不认,转发给客户端,同时等待服务器关闭短连接
- 客户端收到Connection:Keep-Alive,认为可以复用长连接,继续在该连接上发送请求
-
Proxy-Connection
陈旧的代理服务器不识别该头部:退化为短连接,并原封不动转发给下游
- 新版本的代理服务器理解该头部
- 与客户端建立长连接
- 与服务器使用Connection代替Proxy-Connection头部