@Contract(threading=STATELESS) public interface ConnectionReuseStrategy
Implementations of this interface must be thread-safe. Access to shared data must be synchronized as methods of this interface may be executed from multiple threads.
Modifier and Type | Method and Description |
---|---|
boolean |
keepAlive(HttpRequest request,
HttpResponse response,
HttpContext context)
Decides whether a connection can be kept open after a request.
|
boolean keepAlive(HttpRequest request, HttpResponse response, HttpContext context)
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.
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.true
if the connection is allowed to be reused, or
false
if it MUST NOT be reused