gecko/mobile/android/base/httpclientandroidlib/conn/package.html

81 lines
3.4 KiB
HTML

<html>
<head>
<!--
/*
* ====================================================================
* 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 that provides interfaces
and implementations for opening and managing client side HTTP 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}. The socket factory for
a protocol {@link org.apache.http.conn.scheme.Scheme} such as "http" or "https"
can be looked up in a {@link org.apache.http.conn.scheme.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} internally manages
operated connections, but hands out instances of
{@link org.apache.http.conn.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.
</p>
<p>
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.
</p>
<p>
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>