org.apache.http.impl

## Class DefaultConnectionReuseStrategy

- java.lang.Object
- - org.apache.http.impl.DefaultConnectionReuseStrategy

- All Implemented Interfaces:
    ConnectionReuseStrategy

      @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

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static DefaultConnectionReuseStrategy` | `INSTANCE`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `DefaultConnectionReuseStrategy()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected TokenIterator` | `createTokenIterator(HeaderIterator hit)` Creates a token iterator from a header iterator.
    `boolean` | `keepAlive(HttpResponse response, HttpContext context)` Decides whether a connection can be kept open after a request.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### INSTANCE

          public static final DefaultConnectionReuseStrategy INSTANCE

  - ### Constructor Detail

    - #### DefaultConnectionReuseStrategy

          public DefaultConnectionReuseStrategy()

  - ### 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 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–2013 The Apache Software Foundation. All rights reserved.