18.9 Apache Jakarta Commons HttpClient und Net 

Das Java-Netzwerkpaket und insbesondere die Klasse URLConnection beziehungsweise HttpConnection bieten Basisfunktionalität für den Zugriff auf Internet-Ressourcen. Allerdings fehlen komfortable Methoden, etwa für Cookies (hier bieten Java 5 und Java 6 aber mittlerweile auch etwas) oder Multi-Part Form-Data POST, also Möglichkeiten zum Hochladen von Dateien. Die müsste jeder selbst implementieren, was Zeit und Nerven kostet.
18.9.1 Jakarta Commons HttpClient 

Die Bibliothek Jakarta Commons HttpClient (zu finden unter: http://jakarta.apache.org/commons/httpclient/) bietet komfortable Unterstützung für alles Mögliche rund um das HTTP-Protokoll 1.0 und 1.1:
- Alle HTTP-Methoden (GET, POST, PUT, DELETE, HEAD, OPTIONS, TRACE)
- Verschlüsselung mit HTTPS (HTTP über SSL)
- Verbindungen durch HTTP-Proxies
- Getunnelte HTTPS-Verbindungen durch HTTP-Proxies, via CONNECT
- Verbindungen mit SOCKS-Proxies (Version 4 und 5)
- Authentifizierung mit BASIC, Digest und NTLM (NT LAN Manager)
- Multi-Part-Form POST
- und vieles mehr
18.9.2 Jakarta Commons Net 

Die Bibliothek Jakarta Commons Net (http://jakarta.apache.org/commons/net/) implementiert bekannte Internet-Protokolle. Sie ist auf einem viel höheren Abstraktionsniveau als der HTTP-Client und unterstützt folgende Protokolle:
- FTP (File Transfer Protocol). Dient der Dateiübertragung von und zu jedem beliebigen Rechner im Internet.
- TFTP (Trivial File Transfer Protocol). Einfache Variante von FTP ohne Sicherheitsprüfung.
- NNTP (Network News Transfer Protocol). Protokoll zum Versenden und Empfangen von Nachrichten in Diskussionsforen.
- SMTP (Simple Mail Transfer Protocol). Standardprotokoll, mit dem E-Mails auf einen Server übertragen werden.
- POP3 (Post Office Protocol, Version 3). Bisheriges Standardprotokoll, mit dem E-Mails vom Server abgeholt werden.
- Telnet (Terminalemulation). Bietet die Möglichkeit, sich in spezielle Rechner einzuloggen.
- Finger, Whois. Informations- und Nachschlagedienste, um Informationen über Personen einzuholen.
Daneben unterstützt die Bibliothek auch die BSD-R-Kommandos wie rexec, rcmd/rshell und rlogin sowie Time (rdate) und Daytime. Für SMTP und POP3 ist die JavaMail API im Allgemeinen besser geeignet.