blob: bc432ef4e3b6ab0adeab920742ac4c014d7a48d5 [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/>.
----------
HttpComponents HttpClient Overview
----------
----------
----------
HttpClient 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. HttpClient
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, HttpClient
may be of interest to anyone building HTTP-aware client applications such as web browsers, web
service clients, or systems that leverage or extend the HTTP protocol for distributed
communication.
{Documentation}
[[1]] Examples demonstrating some common as well as more complex use cases
* {{{./examples.html}HttpClient (classic APIs)}}
* {{{./examples-async.html}HttpClient (async APIs)}}
* {{{./examples-reactive.html}HttpClient (reactive APIs)}}
[]
[[1]] Javadocs
* {{{./current/httpclient5/apidocs/}HttpClient}}
* {{{./current/httpclient5-fluent/apidocs/}HC Fluent}}
* {{{./current/httpclient5-cache/apidocs/}HttpClient Cache}}
* {{{./current/httpclient5-win/apidocs/}HttpClient Windows extensions}}
[]
[[1]] API compatibility reports
* {{{./current/httpclient5/clirr-report.html}HttpClient}}
* {{{./current/httpclient5-fluent/clirr-report.html}HC Fluent}}
* {{{./current/httpclient5-cache/clirr-report.html}HttpClient Cache}}
* {{{./current/httpclient5-win/clirr-report.html}HttpClient Windows extensions}}
{Standards Compliance}
HttpClient strives to conform to the following specifications endorsed by the Internet
Engineering Task Force (IETF) and the internet at large:
* {{{http://tools.ietf.org/html/rfc7230}RFC 7230}} - Hypertext Transfer Protocol (HTTP/1.1):
Message Syntax and Routing
* {{{http://tools.ietf.org/html/rfc7231}RFC 7231}} - Hypertext Transfer Protocol (HTTP/1.1):
Semantics and Content
* {{{http://tools.ietf.org/html/rfc7235}RFC 7235}} - Hypertext Transfer Protocol (HTTP/1.1):
Authentication
* {{{http://tools.ietf.org/html/rfc1945}RFC 1945}} - Hypertext Transfer Protocol -- HTTP/1.0
* {{{http://tools.ietf.org/html/rfc2817}RFC 2817}} - Upgrading to TLS Within HTTP/1.1
* {{{http://tools.ietf.org/html/rfc2818}RFC 2818}} - HTTP Over TLS
* {{{http://tools.ietf.org/html/rfc6265}RFC 6265}} - HTTP State Management Mechanism (Cookies)
* {{{http://tools.ietf.org/html/rfc3986}RFC 3986}} - Uniform Resource Identifiers (URI): Generic Syntax