HTTP 1.0 uses a separate connection for each request. When you're downloading many small files, the time required to set up and tear down the connections can be a significant fraction of the total amount of time needed to load a page. It would be better if you could load all the HTML documents, images, applets, and sounds a page needed in one connection.
One way to do this without changing the HTTP protocol, is to pack all those different files into a single archive file, perhaps a zip archive, and just download that.
We aren't quite there yet. Browsers do not yet understand
archive files, but applets do. You can pack all the
images, sounds, and .class files an applet needs into one JAR
archive and load that instead of the individual files. Applet
classes do not have to be loaded directly. They can also be stored
in JAR archives. To do this you use the ARCHIVES
attribute of the APPLET
tag
<applet code="HelloWorldApplet"
width="200" height="100"
archives="HelloWorld.jar">
<hr>
Hello World!
<hr>
</applet>
In this example, the applet class is still HelloWorldApplet
. However, there is no
HelloWorldApplet.class file to be downloaded. Instead the class is
stored inside the archive file HelloWorld.jar.
Sun provides a tool for creating JAR archives with its JDK. For example,
$ jar cf HelloWorld.jar *.class
This puts all the .class files in the current directory in the file named "HelloWorld.jar". The syntax of the jar command is deliberately similar to the Unix tar command.