Package org.apache.http.impl
Class DefaultConnectionReuseStrategy
java.lang.Object
org.apache.http.impl.DefaultConnectionReuseStrategy
- All Implemented Interfaces:
ConnectionReuseStrategy
public class DefaultConnectionReuseStrategy extends Object implements ConnectionReuseStrategy
Default implementation of a strategy deciding about connection re-use.
The default implementation first checks some basics, for example
whether the connection is still open or whether the end of the
request entity can be determined without closing the connection.
If these checks pass, the tokens in the "Connection" header will
be examined. In the absence of a "Connection" header, the
non-standard but commonly used "Proxy-Connection" header takes
it's role. A token "close" indicates that the connection cannot
be reused. If there is no such token, a token "keep-alive" indicates
that the connection should be re-used. If neither token is found,
or if there are no "Connection" headers, the default policy for
the HTTP version is applied. Since HTTP/1.1, connections are re-used
by default. Up until HTTP/1.0, connections are not re-used by default.
- Since:
- 4.0
- Version:
- $Revision: 602537 $
- Author:
- Oleg Kalnichevski, Roland Weber
-
Constructor Summary
Constructors Constructor Description DefaultConnectionReuseStrategy() -
Method Summary
Modifier and Type Method Description protected TokenIteratorcreateTokenIterator(HeaderIterator hit)Creates a token iterator from a header iterator.booleankeepAlive(HttpResponse response, HttpContext context)Decides whether a connection can be kept open after a request.
-
Constructor Details
-
DefaultConnectionReuseStrategy
public DefaultConnectionReuseStrategy()
-
-
Method Details
-
keepAlive
Description copied from interface:ConnectionReuseStrategyDecides whether a connection can be kept open after a request. If this method returnsfalse, the caller MUST close the connection to correctly implement the HTTP protocol. If it returnstrue, the caller SHOULD attempt to keep the connection open for reuse with another request.
One can use the HTTP context to retrieve additional objects that may be relevant for the keep-alive strategy: the actual HTTP connection, the original HTTP request, target host if known, number of times the connection has been reused already and so on.
If the connection is already closed,falseis returned. The stale connection check MUST NOT be triggered by a connection reuse strategy.- Specified by:
keepAlivein interfaceConnectionReuseStrategy- Parameters:
response- The last response received over that connection.context- the context in which the connection is being used.- Returns:
trueif the connection is allowed to be reused, orfalseif it MUST NOT be reused
-
createTokenIterator
Creates a token iterator from a header iterator. This method can be overridden to replace the implementation of the token iterator.- Parameters:
hit- the header iterator- Returns:
- the token iterator
-