<html> <head> <!-- /* * $HeadURL: http://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk/module-client/src/main/java/org/apache/http/conn/package.html $ * $Revision: 651813 $ * $Date: 2008-04-26 03:43:34 -0700 (Sat, 26 Apr 2008) $ * * ==================================================================== * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. * ==================================================================== * * This software consists of voluntary contributions made by many * individuals on behalf of the Apache Software Foundation. For more * information on the Apache Software Foundation, please see * <http://www.apache.org/>. * */ --> </head> <body> The client-side connection management and handling API at the heart of what is referred to as <i>HttpConn</i>. This component provides interfaces and implementations for opening and managing connections. <p> The lowest layer of connection handling is comprised of {@link org.apache.http.conn.OperatedClientConnection OperatedClientConnection} and {@link org.apache.http.conn.ClientConnectionOperator ClientConnectionOperator}. The connection interface extends the core {@link org.apache.http.HttpClientConnection HttpClientConnection} by operations to set and update a socket. An operator encapsulates the logic to open and layer sockets, typically using a {@link org.apache.http.conn.scheme.SocketFactory SocketFactory}. The socket factory for a protocol {@link org.apache.http.conn.scheme.Scheme Scheme} such as "http" or "https" can be looked up in a {@link org.apache.http.conn.scheme.SchemeRegistry SchemeRegistry}. Applications without a need for sophisticated connection management can use this layer directly. </p> <p> On top of that lies the connection management layer. A {@link org.apache.http.conn.ClientConnectionManager ClientConnectionManager} internally manages operated connections, but hands out instances of {@link org.apache.http.conn.ManagedClientConnection ManagedClientConnection}. This interface abstracts from the underlying socket operations and provides convenient methods for opening and updating sockets in order to establish a {@link org.apache.http.conn.routing.HttpRoute route}. The operator is encapsulated by the connection manager and called automatically. <br/> Connections obtained from a manager have to be returned after use. This can be {@link org.apache.http.conn.ConnectionReleaseTrigger triggered} on various levels, either by releasing the {@link org.apache.http.conn.ManagedClientConnection connection} directly, or by calling a method on an {@link org.apache.http.conn.BasicManagedEntity entity} received from the connection, or by closing the {@link org.apache.http.conn.EofSensorInputStream stream} from which that entity is being read. Connection managers will try to keep returned connections alive in order to re-use them for subsequent requests along the same route. The managed connection interface and all triggers for connection release provide methods to enable or disable this behavior. </p> </body> </html>