Chapter 16. Protocol Handlers
When designing an architecture that
would allow them to build a self-extensible browser, the engineers at
Sun divided the problem into two parts: handling protocols and
handling content. Handling a protocol means taking care of the
interaction between a client and a server: generating requests in the
correct format, interpreting the headers that come back with the
data, acknowledging that the data has been received, etc. Handling
the content means converting the raw data into a format Java
understands, for example, an InputStream
or an
AudioClip
. These two problems, handling protocols
and handling content, are distinct. The software that displays a GIF
image doesn’t care whether the image was retrieved via FTP,
HTTP, gopher, or some new protocol. Likewise, the protocol handler,
which manages the connection and interacts with the server,
doesn’t care if it’s receiving an HTML file or an MPEG
movie file; at most, it will extract a content type from the headers
to pass along to the content handler.
Java divides the task of handling protocols into a number of pieces.
As a result, there is no single class called
ProtocolHandler
. Instead, pieces of the protocol
handler mechanism are implemented by four different class es in the
java.net
package: URL
,
URLStreamHandler
,
URLConnection
, and
URLStreamHandlerFactory
. URL
is
the only concrete class in this group;
URLStreamHandler
and
URLConnection
are both abstract classes, and
URLStreamHandlerFactory
is an interface. ...
Get Java Network Programming, Second Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.