Package org.apache.hc.core5.http.impl
Class DefaultConnectionReuseStrategy
java.lang.Object
org.apache.hc.core5.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 strategy
determines whether a connection is persistent or not based on the message’s protocol
version and
Connection header field if present. Connections will not be
re-used and will close if any of these conditions is met
- the
closeconnection option is present in the request message - the response message content body is incorrectly or ambiguously delineated
- the
closeconnection option is present in the response message - If the received protocol is
HTTP/1.0(or earlier) andkeep-aliveconnection option is not present
Connection header field, the non-standard but commonly used
Proxy-Connection header field will be used instead. If no connection options are
explicitly given the default policy for the HTTP version is applied. HTTP/1.1
(or later) connections are re-used by default. HTTP/1.0 (or earlier) connections
are not re-used by default.- Since:
- 4.0
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionbooleankeepAlive(HttpRequest request, HttpResponse response, HttpContext context) Decides whether a connection can be kept open after a request.
-
Field Details
-
INSTANCE
-
-
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 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,
falseis returned. The stale connection check MUST NOT be triggered by a connection reuse strategy.- Specified by:
keepAlivein interfaceConnectionReuseStrategy- Parameters:
request- The last request transmitted over that connection.response- The last response transmitted 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
-