<?xml version="1.0" encoding="ISO-8859-1"?>

<document>

  <properties>
    <title>Overview</title>
    <author email="dev@hc.apache.org">HttpComponents Team</author>
    <author email="rwaldhoff@apache.org">Rodney Waldhoff</author>
    <author email="jsdever@apache.org">Jeff Dever</author>
    <revision>$Id$</revision>
  </properties>

  <body>
    <section name="End of life">
      <p>
      The Commons HttpClient project is now end of life, and is no longer being developed. 
      It has been replaced by the <a href="../">Apache HttpComponents</a> project
      in its <a href="../httpcomponents-client-ga">HttpClient</a> and <a href="../httpcomponents-core-ga/">HttpCore</a> modules,
      which offer better performance and more flexibility.
      </p>
    </section>

    <section name="Scope">
      <p>
        The <em>HttpClient</em> component supports the client-side of
        <a href="http://www.w3.org/Protocols/rfc1945/rfc1945.txt">RFC 1945 (HTTP/1.0)</a> and
        <a href="http://www.w3.org/Protocols/rfc2616/rfc2616.txt">RFC 2616 (HTTP/1.1)</a>,
        several related specifications
        (<a href="http://www.w3.org/Protocols/rfc2109/rfc2109.txt">RFC 2109 (Cookies)</a>,
        <a href="http://www.ietf.org/rfc/rfc2617.txt">RFC 2617 (HTTP Authentication)</a>,
        etc.), and provides a framework by which new request types (methods) or HTTP
        extensions can be created easily.
      </p>
    </section>
    <section name="The org.apache.commons.httpclient Package">
      <p>
        The basis for the abstraction is provided by three primary
        types:
      </p>
      <ul><dl>
          <dt><a href="./api/org/apache/commons/httpclient/HttpConnection.html">HttpConnection</a></dt>
          <dd>
            represents a network connection to some HTTP host.
          </dd>
          <dt><a href="./api/org/apache/commons/httpclient/HttpMethod.html">HttpMethod</a></dt>
          <dd>
            represents a request to be made over some
            <tt>HttpConnection</tt> and contains the server's response.
          </dd>
          <dt><a href="./api/org/apache/commons/httpclient/HttpState.html">HttpState</a></dt>
          <dd>
            contains the HTTP attributes that may persist from
            request to request, such as cookies and authentication
            credentials.
          </dd>
      </dl></ul>
      <p>
        and several simple bean-style classes:
      </p>
      <ul><dl>
          <dt><a href="./api/org/apache/commons/httpclient/Cookie.html">Cookie</a></dt>
          <dd>
            represents HTTP cookie.
          </dd>
          <dt><a href="./api/org/apache/commons/httpclient/Credentials.html">Credentials</a></dt>
          <dd>
            an interface representing a set of authentication credentials.
          </dd>
          <dt><a href="./api/org/apache/commons/httpclient/Header.html">Header</a></dt>
          <dd>
            represents an HTTP request or response header.
          </dd>
          <dt><a href="./api/org/apache/commons/httpclient/HeaderElement.html">HeaderElement</a></dt>
          <dd>
            represents a single element of a multi-part header.
          </dd>
          <dt><a href="./api/org/apache/commons/httpclient/UsernamePasswordCredentials.html">UsernamePasswordCredentials</a></dt>
          <dd>
            a username and password pair.
          </dd>
      </dl></ul>
      <p>
        <a href="./api/org/apache/commons/httpclient/HttpClient.html">HttpClient</a>
        provides a simple "user-agent" implementation that will suffice for many
        applications, but whose use is not required.
      </p>
      <p>
        <em>HttpClient</em> also provides several utilities that may be
        useful when extending the framework:
      </p>
      <ul><dl>
          <dt><a href="./api/org/apache/commons/httpclient/HttpMethodBase.html">HttpMethodBase</a></dt>
          <dd>
            an abstract base implementation of <tt>HttpMethod</tt>,
            which may be extended to create new method types or
            to support additional HTTP protocol features.
          </dd>
          <dt><a href="./api/org/apache/commons/httpclient/HttpStatus.html">HttpStatus</a></dt>
          <dd>
            an enumeration of HttpStatus codes.
          </dd>
          <dt><a href="./api/org/apache/commons/httpclient/RequestOutputStream.html">RequestOutputStream</a></dt>
          <dd>
            an <tt>OutputStream</tt> wrapper supporting the "chunked"
            transfer encoding.
          </dd>
          <dt><a href="./api/org/apache/commons/httpclient/ResponseInputStream.html">ResponseInputStream</a></dt>
          <dd>
            an <tt>InputStream</tt> wrapper supporting the "chunked"
            transfer encoding.
          </dd>
          <dt><a href="./api/org/apache/commons/httpclient/URIUtil.html">URIUtil</a></dt>
          <dd>
            provides utilities for encoding and decoding URI's in the
            <tt>%HH</tt> format.
          </dd>
      </dl></ul>
    </section>
    <section name="The org.apache.commons.httpclient.methods Package">
      <p>
        The
        <a href="./api/org/apache/commons/httpclient/methods/package-summary.html">org.apache.commons.httpclient.methods</a>
        package provides <tt>HttpMethod</tt> implementations of the most
        commonly used HTTP methods, including
        <a href="./api/org/apache/commons/httpclient/methods/GetMethod.html">GET</a>,
        <a href="./api/org/apache/commons/httpclient/methods/PostMethod.html">POST</a>,
        <a href="./api/org/apache/commons/httpclient/methods/PutMethod.html">PUT</a>,
        <a href="./api/org/apache/commons/httpclient/methods/OptionsMethod.html">OPTIONS</a>,
        <a href="./api/org/apache/commons/httpclient/methods/HeadMethod.html">HEAD</a>
        and
        <a href="./api/org/apache/commons/httpclient/methods/DeleteMethod.html">DELETE</a>.
      </p>
    </section>

  </body>

</document>


