![]()
HTTP_persistent_connection.svg
keepalive的时间范围内,这些http请求共用同一个TCP connection. 如果keepalive为off的话,则每次http请求都需要新建tcp connection
摘自wikipedia:
HTTP persistent connections, also called HTTP keep-alive, or HTTP connection reuse, is the idea of using the same TCP connection to send and receive multiple HTTP requests/responses, as opposed to opening a new connection for every single request/response pair.
Advantages
less CPU and memory usage (because fewer connections are open simultaneously)
enables HTTP pipelining of requests and responses
reduced network congestion (fewer TCP connections)
reduced latency in subsequent requests (no handshaking)
errors can be reported without the penalty of closing the TCP connection
Java应用
client用apache的commons-httpclient来执行method 。
用 method.setRequestHeader("Connection" , "Keep-Alive" or "close") 来控制是否保持连接。
常用的apache、resin、tomcat等都有相关的配置是否支持keep-alive。
tomcat中可以设置:maxKeepAliveRequests
The maximum number of HTTP requests which can be pipelined until the connection is closed by the server. Setting this attribute to 1 will disable HTTP/1.0 keep-alive, as well as HTTP/1.1 keep-alive and pipelining. Setting this to -1 will allow an unlimited amount of pipelined or keep-alive HTTP requests. If not specified, this attribute is set to 100.
本文介绍了HTTP持久连接(也称为HTTP keep-alive或HTTP连接复用)的概念,即使用同一个TCP连接发送和接收多个HTTP请求/响应,而不是为每个请求/响应对打开新的连接。文章详细讨论了持久连接的优势,如减少CPU和内存使用、启用HTTP请求和响应的管道化、减少网络拥塞等,并提供了Java客户端如何通过Apache commons-httpclient控制连接保持的例子。
4436

被折叠的 条评论
为什么被折叠?



