Re: Additional HTTP Status Codes - draft-nottingham-http-new-status-02

On Oct 22, 2011, at 10:49 PM, Mark Nottingham wrote:
> On 22/10/2011, at 12:53 PM, Roy T. Fielding wrote:
> 
>> On Oct 21, 2011, at 5:39 PM, Mark Nottingham wrote:
>> 
>>> Like I said, I'm not necessarily against 3xx.
>>> 
>>> I'm a *bit* concerned that we've had a fair amount of attention on the latest draft, and there's a certain amount of momentum as a result.
>>> 
>>> If there's a tangible benefit to switching, that's great; however, it *looks* like there are arguments / reasons for all of the status codes (we started at 4xx, now 5xx, next 3xx? Perhaps we should consider 1xx too? ;)  So, all else equal, I'd rather just leave it as-is. 
>>> 
>>> In any case, if we are going to change, it should be done soon.
>> 
>> Yep... any chance you could add a few pages to redbot that responds
>> using different statuses, so we can see which pukes less on browsers?
>> I'd do it locally but am strapped for time at the moment.
> 
> Not really a redbot thing, just a couple of .asis pages, I think.
> 
>  http://www.mnot.net/tmp/311.asis
>  http://www.mnot.net/tmp/511.asis
> 
> I tested IE6/8/9, Safari 5.1.1, FF7.0.1, Opera 11.50 and Chrome (whatever it is now).
> 
> All of them displayed the text/plain of the 511 response.
> 
> All *except* Safari displayed the text/plain of the 311 response; it followed the Location header as if it were a redirect.

Well, it is a redirect, so Safari is the only one not broken there.

> So, I don't think we can put this on 3xx with a Location header -- automatically following it without understanding the semantics is what we don't want, and if Apple's HTTP stack makes that assumption, pretty much an OSX program using HTTP won't see the benefit of this new status code.

Eh?  But I thought that is what we wanted.  In any case, an unknown 3xx code
is defined as falling back to 300, which has defined semantics for Location.
That was the whole point of suggesting 311.  But I guess it only works on Safari.

> It's a bit of a pity, as I agree it would be nice to surface this in the Location header. We (httpbis now) might want to tighten up the semantics of Location to make it clear that its semantics are attached to / activated by the status code; it alone doesn't signify a redirect.

3xx + Location was intended to signify a redirect -- the additional semantics
just explain why the redirection is occurring.  If a 3xx code does not want
an automatic redirect fallback, then it doesn't use Location.

> Back to the status code, I think our options are:
> 
> 511 + Location or a Link header (if we want to surface the link in headers)
> 311 + Link header (if we want to surface the link in headers)
> 
> As before, I'm slightly inclined towards 511 (could go either way on the link relation), but don't mind 311 (as long as we do so soon).

Let's stick with 511.  I don't think we need a header if we don't want
the client to autoredirect.

Clearly, I have to spend some time writing a new explanation of the
status code classes.  I've received more feedback on the 5xx/4xx distinction
this week than for any of our other changes.

....Roy

Received on Sunday, 23 October 2011 07:05:27 UTC