Chapter Questions
Read the standard for URLs. What does it mean when a pound sign (\#) is followed by a string at the end of a URL?
Extend the previous exercise. Is it legal to send the pound sign suffix on a URL to a web server? Why or why not?
How does a browser distinguish between a document that contains HTML and a document that contains arbitrary text? To find out, experiment by using a browser to read from a file. Does the browser use the name of the file or the contents to decide how to interpret the file?
What is the purpose of an HTTP TRACE command?
What is the difference between an HTTP PUT command and an HTTP POST command? When is each useful?
When is an HTTP Keep-Alive header used?
Can an arbitrary web server function as a proxy? To find out, choose an arbitrary web server and configure your browser to use it as a proxy. Do the results surprise you?
Download and install the Squid transparent proxy cache. What networking facilities in the OS does Squid use to cache web pages?
Read about HTTP's must-revalidate cache control directive. Give an example of a web page that would use such a directive.
Suppose you work for a company that configures your laptop computer always to use the company's proxy web server. Explain what happens if you travel and connect to the Internet at a hotel.
If a browser does not send an HTTP Content-Length: header before a request, how does a server respond?
Read more about HTTPS and explain the impact of HTTPS on caching. Under what circumstances can a proxy cache web pages when using HTTPS?
Read the HTTP specification carefully. Can HTTP be used for streaming video? Explain why or why not.
Consider a denial-of-service attack on a web server in which a perpetrator arranges to have many clients form a connection to the server and repeatedly send requests for nonexistent web pages. How can such an attack be prevented?
Because many web pages include ads, most web pages contain at least some dynamic content (i.e., content that is generated when the page is fetched). How should a web designer arrange such pages to maximize caching effectiveness?