Package org.apache.http.impl
Class DefaultConnectionReuseStrategy
- java.lang.Object
-
- org.apache.http.impl.DefaultConnectionReuseStrategy
-
- All Implemented Interfaces:
ConnectionReuseStrategy
- Direct Known Subclasses:
DefaultClientConnectionReuseStrategy
@Contract(threading=IMMUTABLE) public class DefaultConnectionReuseStrategy extends java.lang.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 theConnection
header will be examined. In the absence of aConnection
header, the non-standard but commonly usedProxy-Connection
header takes it's role. A tokenclose
indicates that the connection cannot be reused. If there is no such token, a tokenkeep-alive
indicates that the connection should be re-used. If neither token is found, or if there are noConnection
headers, the default policy for the HTTP version is applied. SinceHTTP/1.1
, connections are re-used by default. Up untilHTTP/1.0
, connections are not re-used by default.- Since:
- 4.0
-
-
Field Summary
Fields Modifier and Type Field Description static DefaultConnectionReuseStrategy
INSTANCE
-
Constructor Summary
Constructors Constructor Description DefaultConnectionReuseStrategy()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
keepAlive(HttpResponse response, HttpContext context)
Decides whether a connection can be kept open after a request.
-
-
-
Field Detail
-
INSTANCE
public static final DefaultConnectionReuseStrategy INSTANCE
-
-
Method Detail
-
keepAlive
public boolean keepAlive(HttpResponse response, HttpContext context)
Description copied from interface:ConnectionReuseStrategy
Decides whether a connection can be kept open after a request. If this method returnsfalse
, the caller MUST close the connection to correctly comply with 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,
false
is returned. The stale connection check MUST NOT be triggered by a connection reuse strategy.- Specified by:
keepAlive
in interfaceConnectionReuseStrategy
- Parameters:
response
- The last response received over that connection.context
- the context in which the connection is being used.- Returns:
true
if the connection is allowed to be reused, orfalse
if it MUST NOT be reused
-
-