Bounce Response

S
ometimes, the server wants to tell the browser to make a new request for a new URL. This is called a bounce, and looks like this:
HTTP/1.1 302 Found
Date: Mon, 16 Jul 2001 19:53:58 GMT
Server: Apache/1.3.14 (Unix) mod_python/2.7.1 Python/2.0 PHP/4.0.4
Location: http://www.cs.uchicago.edu/info/services/website
Connection: close
Content-Type: text/html
 
<HTML><BODY>Go 
<a href="http://www.cs.uchicago.edu/info/services/website">here</a>.
</BODY></HTML>

The 302 status tells the browser that it should not display the page, but should begin a new request to a new URL. The Location header specifies that new URL. The entity-body is ignored by all but the oldest browsers, but is sent just in case.

Bounces are nice for a few reasons. First, a browser does not keep URLs which produced bounces in its history list. After performing an action, the site sends a bounce response with a new URL. The URL that triggered the action, then, is not kept in the browser's history list and will not be repeated by a user clicking back.

Second, if a POST request results in a bounce to a new URL, then the new URL will be fetched with the GET method. The site assumes this behavior, and all common browsers do behave this way, but the HTTP/1.1 RFC instructs browsers to use the same method, and instructs servers to use codes 303 or 307 instead. Unfortunately, some browsers do not support these new codes.

As a result, as browsers evolve to adhere more closely to the standard, the site's bouncing mechanism may need to change.