Describing current practice for 301 and 302

I would like to propose an addition to the sections of 
draft-ietf-http-v10-spec-04.txt that describe the 301 and 302 response
codes.  The purpose of the addition is to warn service authors about
current practice in browser implementations of these response codes.

Here are the relevant sections, with my proposed additions marked by +
signs:

 ----------------

   301 Moved Permanently

   The requested resource has been assigned a new permanent URL and
   any future references to this resource should be done using that
   URL. Clients with link editing capabilities should automatically
   relink references to the Request-URI to the new reference returned
   by the server, where possible.

   The new URL must be given by the Location field in the response.
   Unless it was a HEAD request, the Entity-Body of the response
   should contain a short note with a hyperlink to the new URL.

   If the 301 status code is received in response to a request using
   the POST method, the user agent must not automatically redirect the
   request unless it can be confirmed by the user, since this might
   change the conditions under which the request was issued.

+      Note: When automatically redirecting a POST request after
+      receiving a 301 status code, some existing user agents will
+      change the method of the request to GET.

   302 Moved Temporarily

   The requested resource resides temporarily under a different URL.
   Since the redirection may be altered on occasion, the client should
   continue to use the Request-URI for future requests.

   The URL must be given by the Location field in the response. Unless
   it was a HEAD request, the Entity-Body of the response should
   contain a short note with a hyperlink to the new URI(s).

   If the 302 status code is received in response to a request using
   the POST method, the user agent must not automatically redirect the
   request unless it can be confirmed by the user, since this might
   change the conditions under which the request was issued.

+      Note: When automatically redirecting a POST request after
+      receiving a 302 status code, some existing user agents will
+      change the method of the request to GET.

 ----------------

The `some existing user agents' referred to above include all three
user agents on my Linux box:
   Lynx/2.4-FM libwww/2.14
   NCSA Mosaic for the X Window System/2.2 libwww/2.12 modified
   Mozilla/1.12 (X11; I; Linux 1.2.9 i486)

I have seen remarks on http-wg (or was it www-talk?) indicating that
some user agents do _not_ change the POST to a GET.

Koen.

Received on Wednesday, 31 January 1996 15:11:53 UTC