Content and Protocol Handlers
Content and protocol handlers separate the data being downloaded from the the protocol used to download it.
The protocol handler negotiates with the server and parses any headers. It gives the content handler only the actual data of the requested resource.
The content handler translates those bytes into a Java object like an InputStream or ImageProducer.