| ~~ ==================================================================== |
| ~~ 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/>. |
| |
| ---------- |
| HttpComponents HttpAsyncClient Overview |
| ---------- |
| ---------- |
| ---------- |
| |
| HttpAsyncClient 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. |
| |
| Although the java.net package provides basic functionality for accessing resources via HTTP, it |
| doesn't provide the full flexibility or functionality needed by many applications. |
| HttpAsyncClient seeks to fill this void by providing an efficient, up-to-date, and feature-rich |
| package implementing the client side of the most recent HTTP standards and recommendations. |
| |
| Designed for extension while providing robust support for the base HTTP protocol, |
| HttpAsyncClient may be of interest to anyone building HTTP-aware client applications based on |
| asynchronous, event driven I/O model. |
| |
| {Documentation} |
| |
| * Some examples of HttpAsyncClient in action can be found {{{./examples.html}here}} |
| |
| {Features} |
| |
| * Standards based, pure Java, implementation of HTTP versions 1.0 and 1.1 |
| |
| * Full implementation of all HTTP methods (GET, POST, PUT, DELETE, HEAD, OPTIONS, and TRACE) |
| in an extensible OO framework. |
| |
| * Supports encryption with HTTPS (HTTP over SSL) protocol. |
| |
| * Transparent connections through HTTP proxies. |
| |
| * Tunneled HTTPS connections through HTTP proxies, via the CONNECT method. |
| |
| * Connection management support concurrent request execution. Supports setting the maximum |
| total connections as well as the maximum connections per host. Detects and closes expired |
| connections. |
| |
| * Persistent connections using KeepAlive in HTTP/1.0 and persistance in HTTP/1.1 |
| |
| * The ability to set connection timeouts. |
| |
| * Source code is freely available under the Apache License. |
| |
| * Basic, Digest, NTLMv1, NTLMv2, NTLM2 Session, SNPNEGO/Kerberos authentication schemes. |
| |
| * Plug-in mechanism for custom authentication schemes. |
| |
| * Automatic Cookie handling for reading Set-Cookie: headers from the server and sending them |
| back out in a Cookie: header when appropriate. |
| |
| * Plug-in mechanism for custom cookie policies. |
| |
| {Standards Compliance} |
| |
| HttpAsyncClient strives to conform to the following specifications endorsed by the Internet |
| Engineering Task Force (IETF) and the internet at large: |
| |
| * {{{http://www.ietf.org/rfc/rfc1945.txt}RFC 1945}} Hypertext Transfer Protocol -- HTTP/1.0 |
| |
| * {{{http://www.ietf.org/rfc/rfc2616.txt}RFC 2616}} Hypertext Transfer Protocol -- HTTP/1.1 |
| |
| * {{{http://www.ietf.org/rfc/rfc2617.txt}RFC 2617}} HTTP Authentication: Basic and Digest Access |
| Authentication |
| |
| * {{{http://www.ietf.org/rfc/rfc2109.txt}RFC 2109}} HTTP State Management Mechanism (Cookies) |
| |
| * {{{http://www.ietf.org/rfc/rfc2965.txt}RFC 2965}} HTTP State Management Mechanism (Cookies v2) |