186 lines
4.9 KiB
Text
Executable file
186 lines
4.9 KiB
Text
Executable file
#include "include/layout.wml"
|
|
|
|
<set-var last-modified-author="prk">
|
|
<subject "GNU Classpath inetlib">
|
|
|
|
<box>
|
|
<boxtitle><a name="main">Classpath::inetlib</a></boxtitle>
|
|
<boxitem>
|
|
<en>
|
|
|
|
<p>
|
|
GNU inetlib is a library of clients for common internet protocols.
|
|
The following protocols are currently supported:
|
|
</p>
|
|
|
|
<ul>
|
|
<li>Hypertext Transfer Protocol (HTTP)</li>
|
|
<li>File Transfer Protocol (FTP)</li>
|
|
<li>Simple Mail Transfer Protocol (SMTP)</li>
|
|
<li>Internet Message Access Protocol (IMAP)</li>
|
|
<li>Post Office Protocol (POP)</li>
|
|
<li>Network News Transfer Protocol (NNTP)</li>
|
|
<li>Lightweight Directory Access Protocol (LDAP) (alpha)</li>
|
|
<li>Gopher</li>
|
|
<li>Finger</li>
|
|
</ul>
|
|
|
|
<p>
|
|
The inetlib library is similar in intent to the Python internet protocols
|
|
library - the API is as close as possible to the intent of the underlying
|
|
protocol design. This allows for very efficient coding of user agents.
|
|
</p>
|
|
|
|
<p>
|
|
Additionally, inetlib includes URLStreamHandler implementations for some
|
|
of the protocols. These can be used to add support for the corresponding
|
|
URL scheme to the java.net.URL class.
|
|
</p>
|
|
|
|
</en>
|
|
</boxitem>
|
|
|
|
<boxtitle><a name="http">Classpath::inetlib::HTTP</a></boxtitle>
|
|
<boxitem>
|
|
<en>
|
|
|
|
<p>
|
|
The inetlib HTTP client supports HTTP/1.1 as described in RFC 2616, with
|
|
the following features:
|
|
</p>
|
|
|
|
<ul>
|
|
<li>Persistent connections</li>
|
|
<li>Basic and Digest authentication (RFC 2617)</li>
|
|
<li>HTTPS</li>
|
|
<li>HTTP proxies</li>
|
|
<li>HTTP/1.0 compatibility</li>
|
|
<li>Support for WebDAV methods and other HTTP extensions</li>
|
|
<li>Automatic decoding of the chunked transfer-coding</li>
|
|
<li>Parsing of HTTP date headers</li>
|
|
<li>Support for the 100-continue expectation</li>
|
|
</ul>
|
|
|
|
<p>
|
|
The design of the API is similar to the
|
|
<createlink url="http://www.webdav.org/neon/" name="neon">
|
|
WebDAV/HTTP library. A logical connection to the server is instantiated,
|
|
and multiple requests can be issued on this connection. Each request has
|
|
an atomic <code>dispatch</code> method which returns the response.
|
|
All I/O, authentication, etc is handled by registering callback objects
|
|
with the request prior to dispatch, which are notified during the dispatch
|
|
procedure as necessary. Simple byte-array content callbacks are supplied
|
|
which can manage any request/response content that fits in available memory.
|
|
</p>
|
|
|
|
<p>
|
|
An URL stream handler is provided, supporting the full HttpURLConnection
|
|
specification.
|
|
</p>
|
|
|
|
</en>
|
|
</boxitem>
|
|
|
|
<boxtitle><a name="ftp">Classpath::inetlib::FTP</a></boxtitle>
|
|
<boxitem>
|
|
<en>
|
|
|
|
<p>
|
|
The inetlib FTP client supports both active and passive mode FTP and all
|
|
transfer modes and representation types. The client implements RFC 959,
|
|
with the following exceptions and limitations:
|
|
</p>
|
|
|
|
<ul>
|
|
<li>Only one concurrent transfer connection is supported</li>
|
|
<li>The STAT, HELP, SITE, SMNT, and ACCT commands are not supported</li>
|
|
<li>The TYPE command does not allow alternatives to the default bytesize
|
|
(Non-print), and local bytesize is not supported</li>
|
|
</ul>
|
|
|
|
<p>
|
|
An URL stream handler is provided, which allows the setting of transfer modes
|
|
and representation types by means of the <code>setRequestProperty</code>
|
|
method.
|
|
</p>
|
|
|
|
</en>
|
|
</boxitem>
|
|
|
|
<boxtitle><a name="smtp">Classpath::inetlib::SMTP</a></boxtitle>
|
|
<boxitem>
|
|
<en>
|
|
|
|
<p>
|
|
The inetlib SMTP client fully implements RFC 2821 including the ESMTP
|
|
extension standard.
|
|
</p>
|
|
|
|
<p>
|
|
The client also implements TLS negotiation (RFC 3207) and SASL
|
|
authentication (RFC 2554).
|
|
</p>
|
|
|
|
</en>
|
|
</boxitem>
|
|
|
|
<boxtitle><a name="imap">Classpath::inetlib::IMAP</a></boxtitle>
|
|
<boxitem>
|
|
<en>
|
|
|
|
<p>
|
|
The inetlib IMAP client fully implements IMAP4rev1 and includes the
|
|
following features:
|
|
</p>
|
|
|
|
<ul>
|
|
<li>Extensible authentication using any available SASL mechanism</li>
|
|
<li>TLS negotiation (RFC 2595)</li>
|
|
<li>Automatic UTF-7imap folder name decoding/encoding</li>
|
|
<li>IMAP over SSL</li>
|
|
</ul>
|
|
|
|
</en>
|
|
</boxitem>
|
|
|
|
<boxtitle><a name="pop3">Classpath::inetlib::POP3</a></boxtitle>
|
|
<boxitem>
|
|
<en>
|
|
|
|
<p>
|
|
The inetlib POP client implements version 3 only, as specified in RFC 1939,
|
|
with the exception of the no-arg LIST and UIDL commands (use STAT followed
|
|
by multiple LIST and/or UIDL instead).
|
|
It supports the following features:
|
|
</p>
|
|
|
|
<ul>
|
|
<li>The POP3 extension mechanism CAPA</li>
|
|
<li>Extensible authentication using any available SASL mechanism via
|
|
the AUTH mechanism (RFC 1734)</li>
|
|
<li>TLS negotiation (RFC 2595)</li>
|
|
</ul>
|
|
|
|
</en>
|
|
</boxitem>
|
|
|
|
<boxtitle><a name="nntp">Classpath::inetlib::NNTP</a></boxtitle>
|
|
<boxitem>
|
|
<en>
|
|
|
|
<p>
|
|
The inetlib NNTP client implements all of RFC 977, and many of the common
|
|
NNTP extensions specified in RFC 2980. It supports the XOVER and XHDR
|
|
commands, and simple authentication.
|
|
</p>
|
|
|
|
<p>
|
|
There is also a newsrc mechanism for storing newsgroup subscriptions and read
|
|
articles in an implementation-independent manner, including a file-based
|
|
implementation.
|
|
</p>
|
|
|
|
</en>
|
|
</boxitem>
|
|
</box>
|
|
|