首页 > 如何理解这句话?

如何理解这句话?

如果代理或网关删掉了Connection首部,那么服务器不就不知道客户端的keep-alive请求了吗?


因为keep-alive适用于单条传输链路,如果中间有代理或网关,它们不能理解keep-alive,只将报文完整地传给服务器,服务器接收报文后,误以为代理希望进行keep-alive连接,返回时,客户端会误以为是它在跟服务器进行keep-alive通信。
代理将返回的数据发给客户端后开始等待服务器关闭连接,但服务器认为代理要求的是keep-alive,不会去关闭代理跟服务器间的连接,客户端接收响应报文后,接着发送下一条请求,代理不认同一条连接(代理——服务器)上来自其他地方请求,请求被忽略。
所以,如果代理和网关不去掉connection首部,通信会处于挂起状态,直到超时。


就是 代理和网关(proxy) 与服务器之(server) 间的连接和connection规则由代理和网关(proxy)自己定义,不能由client定义.

是的. 服务器如果收到了keep-alive的请求,也是proxy自己发出的.

可以深入理解 http 是无状态协议.

【热门文章】
【热门文章】