org.apache.http.impl
Class DefaultConnectionReuseStrategy
java.lang.Object
org.apache.http.impl.DefaultConnectionReuseStrategy
- All Implemented Interfaces:
- ConnectionReuseStrategy
@Contract(threading=IMMUTABLE)
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
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
INSTANCE
public static final DefaultConnectionReuseStrategy INSTANCE
DefaultConnectionReuseStrategy
public DefaultConnectionReuseStrategy()
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 returns
false
, the caller MUST
close the connection to correctly comply with the HTTP protocol.
If it returns true
, 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 interface ConnectionReuseStrategy
- 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, or
false
if it MUST NOT be reused
createTokenIterator
protected TokenIterator createTokenIterator(HeaderIterator hit)
- 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
Copyright © 2005–2019 The Apache Software Foundation. All rights reserved.