summaryrefslogtreecommitdiffstats
path: root/src/org/apache/http/conn/package.html
blob: e0b29cdff4c9160dfd0b0e5ec239d932c08e644b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
<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>