Proposal for HttpClient Package

(0) Rationale

HTTP is the main protocol used today on the internet. Although the JDK includes basic support for building HTTP-aware client applications, it doesn't provide the flexibility or ease of use needed for many projects.

A Commons package would give committers an opportunity to coordinate their efforts to create and maintain a efficient, feature-rich package under the ASF license.

(1) Scope of the Package

The package shall create and maintain a Java library implementing the client side of the HTTP/1.1 protocol, as defined in RFC 2616 and RFC 2617.

The package should :

The package is quite different from the HTTP client provided as part of the JDK (java.net.HttpURLConnection), as it focuses on the HTTP methods being sent (instead of making that transparent to the user), and generally allows more interaction with the lower level connection. The JDK client is also not very intuitive to use.

The package is used by the Slide project to build a WebDAV client library supporting WebDAV level 2.

(1.5) Interaction With Other Packages

HttpClient relies on:

(2) Initial Source of the Package

The initial codebase exists in the jakarta-slide cvs tree under the org.apache.webdav.lib package. It would be moved to commons under the http subdirectory.

The proposed package name for the new component is org.apache.commons.httpclient.

(3) Required Jakarta-Commons Resources

(4) Initial Committers

The initial committers on the Digester component shall be: