Java Reference
In-Depth Information
Figure 1-4. Layered connections through a proxy server
As long as all access to the Internet is forwarded through the proxy server, access can
be tightly controlled. For instance, a company might choose to block access to
www.playboy.com but allow access to www.microsoft.com . Some companies allow in‐
coming FTP but disallow outgoing FTP so confidential data cannot be as easily smuggled
out of the company. Other companies use proxy servers to track their employees' web
usage so they can see who's using the Internet to get tech support and who's using it to
check out the Playmate of the Month.
Proxy servers can also be used to implement local caching. When a file is requested
from a web server, the proxy server first checks to see if the file is in its cache. If the file
is in the cache, the proxy serves the file from the cache rather than from the Internet.
If the file is not in the cache, the proxy server retrieves the file, forwards it to the re‐
quester, and stores it in the cache for the next time it is requested. This scheme can
significantly reduce load on an Internet connection and greatly improve response time.
America Online runs one of the largest farms of proxy servers in the world to speed the
transfer of data to its users. If you look at a web server logfile, you'll probably find some
hits from clients in the aol.com domain, but not as many as you'd expect given the more
than three million AOL subscribers. That's because AOL proxy servers supply many
pages out of their cache rather than re-requesting them for one another. Many other
large ISPs do similarly.
The biggest problem with proxy servers is their inability to cope with all but a few
protocols. Generally established protocols like HTTP, FTP, and SMTP are allowed to
pass through, while newer protocols like BitTorrent are not. (Some network adminis‐
trators consider this a feature.) In the rapidly changing world of the Internet, this is a
significant disadvantage. It's a particular disadvantage for Java programmers because it
limits the effectiveness of custom protocols. In Java, it's easy and often useful to create
a new protocol that is optimized for your application. However, no proxy server will
 
Search WWH ::




Custom Search