Fwd: #160: Redirects and non-GET methods

Re 'HTTP semantics' one might find it through various avenues:
- by reading specs, such as 2616 or HTTPbis
  . capturing what the spec says
  . capturing what we think the authors of the spec actually meant,
correcting presumed mistakes or sloppiness
- by considering what general agreement seems to be on the web (the
way a linguist might study a natural language)
- by thinking about what sorts of sender/receiver agreements not yet
deployed might be useful
And semantics could be expressed in RDF in two different ways:
- vocabulary that by definition tracks what general agreement seems to
be (even as it changes)
- vocabulary that is tied to particular agreements observed at a
particular time or in particular kinds of exchanges

Today, I have no opinion on how to approach this...

The following is typical of the sort of problem one has in capturing
HTTP semantics...

Jonathan

---------- Forwarded message ----------
From: Mark Nottingham <mnot@mnot.net>
Date: Sun, Jul 17, 2011 at 7:16 AM
Subject: #160: Redirects and non-GET methods
To: HTTP Working Group <ietf-http-wg@w3.org>

<http://trac.tools.ietf.org/wg/httpbis/trac/ticket/160>

I've just tested the latest iterations of the browsers, with the
following results:

• Safari/533.21.1 - all 301, 302, 307 rewritten to GET; 303 methods
are preserved
• Firefox/5.0.1 - all 301, 302 rewritten to GET; 303 and 307 methods
are preserved
• Chrome/14.0.814.0 - all 301, 302 rewritten to GET; 303 and 307
methods are preserved
• Opera/11.50 - all 301, 302 rewritten to GET; 303 methods are
preserved; 307 tests crash the browser
• MSIE/9.0 (latest) - all 301, 302 methods preserved except POST
(changed to GET); all 303, 307 methods are preserved

So, many browsers rewrite many methods to GET on 301 and 302. whereas
most browsers preserve methods on 303 and 307*.

We *could* codify this practice. However, as Julian notes in the bug,
the fact that IE doesn't rewrite anything except POST is an existence
proof (and a fairly large one) that it's workable to not rewrite the
method on non-POST methods.

So, I'm inclined to agree that we could address this by changing 301
an 302 to note that POST is rewritten to GET; it's a smaller change,
although it would require changes in more browsers.

Thoughts? Especially from browser people?


* Note that this doesn't include HEAD consistently, because HEAD
support in XHR seems... spotty. However, where it was tested, it seems
to be rewritten to GET.

--
Mark Nottingham   http://www.mnot.net/

Received on Sunday, 17 July 2011 20:55:07 UTC