HTTP连接管理2
何为盲中继?
意思就是很多老的代理和简单一点的代理 它们只是将字节从一个连接转发到另一个字节,不对Connection首部进行特殊的处理,所以若从客户端来的报文带有connection首部通过该代理时,此种代理不会进行任何处理,直接转发到服务器,服务器就会认为客户端希望连接保持活跃,于是乎服务器一直将连接打开,并回送一条带有keep-alive的响应首部. 客户端收到响应报文后,会通过keep-alive连接继续发送请求,而此时代理则会忽略连接上的新的请求,等到连接关闭,因此 会被挂起
HTTP/1.1持久连接
HTTP/1.1持久连接在默认情况下是激活的,除非特别指明,否则HTTP/1.1假定所有连接都是持久的,如果需要关闭连接,则需要在报文中显示的添加一个Connection: close 首部
HTTP/1.1 客户端在收到响应后,除非响应中包含了Connection: close首部,不然HTTP/1.1连接就仍维持在打开状态,但是.客户端和服务器仍然可以随时关闭空闲的连接. 不发送Connection:close 并不意味着服务器承诺永远将连接保持在打开状态
一般来说,一个用户客户端对任何服务器或代理最多只能维护两条持久连接,而代理可能需要更多的到服务器的连接来支持并发用户的通信
管理连接时应该以及不应该的做的事情
HTTP/1.1允许在吖持久化连接上可选的使用请求管道,相对于keep-alive连接的又一性能优化.
在响应到达之前,可以将多条请求放入队列,这样做可以降低网络的环回时间,提高性能
HTTP客户端必须做好连接会在任意时刻关闭的准备
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。