blob: 67ede9d15a6bb47f6b34091674e9a0a1757eff28 [file] [log] [blame]
~~ ====================================================================
~~ 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/>.
----------
Apache HttpComponents
----------
----------
----------
Apache HttpComponents
The Apache HttpComponents\u2122 project is responsible for creating and maintaining a toolset of
low level Java components focused on HTTP and associated protocols.
This project functions under the Apache Software Foundation (http://www.apache.org), and is part
of a larger community of developers and users.
HttpComponents Overview
The Hyper-Text Transfer Protocol (HTTP) is perhaps the most significant protocol used on the
Internet today. Web services, network-enabled appliances and the growth of network computing
continue to expand the role of the HTTP protocol beyond user-driven web browsers, while
increasing the number of applications that require HTTP support.
Designed for extension while providing robust support for the base HTTP protocol, the
HttpComponents may be of interest to anyone building HTTP-aware client and server
applications such as web browsers, web spiders, HTTP proxies, web service transport
libraries, or systems that leverage or extend the HTTP protocol for distributed communication.
{HttpComponents Structure}
* {HttpComponents Core}
{{{./httpcomponents-core-ga/index.html}HttpCore}} is a set of low level HTTP transport components
that can be used to build custom client and server side HTTP services with a minimal footprint.
HttpCore supports two I/O models: blocking I/O model based on the classic Java I/O and
non-blocking, event driven I/O model based on Java NIO.
The blocking I/O model may be more appropriate for data intensive, low latency scenarios,
whereas the non-blocking model may be more appropriate for high latency scenarios where raw data
throughput is less important than the ability to handle thousands of simultaneous HTTP
connections in a resource efficient manner.
* HttpCore Tutorial {{{./httpcomponents-core-ga/tutorial/html}HTML}}
/ {{{./httpcomponents-core-ga/tutorial/pdf/httpcore-tutorial.pdf}PDF}}
* HttpCore {{{./httpcomponents-core-ga/examples.html}Examples}}
* {HttpComponents Client}
{{{./httpcomponents-client-ga/index.html}HttpClient}} is a HTTP/1.1 compliant HTTP agent
implementation based on HttpCore. It also provides reusable components for client-side
authentication, HTTP state management, and HTTP connection management. HttpComponents Client
is a successor of and replacement for {{{http://hc.apache.org/httpclient-legacy/index.html}
Commons HttpClient 3.x}}. Users of Commons HttpClient are strongly encouraged to upgrade.
* HttpClient Tutorial {{{./httpcomponents-client-ga/tutorial/html}HTML}}
/ {{{./httpcomponents-client-ga/tutorial/pdf/httpclient-tutorial.pdf}PDF}}
* HttpClient {{{./httpcomponents-client-ga/examples.html}Samples}}
* {HttpComponents AsyncClient}
{{{./httpcomponents-asyncclient-dev/index.html}Asynch HttpClient}} is a HTTP/1.1 compliant HTTP agent
implementation based on HttpCore NIO and HttpClient components. It is a complementary module
to Apache HttpClient intended for special cases where ability to handle a great number of
concurrent connections is more important than performance in terms of a raw data throughput.
* HttpAsyncClient {{{./httpcomponents-asyncclient-dev/examples.html}Samples}}
* {Commons HttpClient (legacy)}
Commons HttpClient 3.x codeline is at the end of life. All users of Commons HttpClient 3.x
are strongly encouraged to upgrade to HttpClient 4.1.