21

An IETF RFC draft The Hypertext Transfer Protocol (HTTP) Status Code 308 (Permanent Redirect) defines HTTP status 308 as Permanent Redirect. It should, of course, be noted that this is a draft document and contains in its document header the text "Expires: September 27, 2012", which I presume would mean it should be considered invalid now, but I'm not familiar with IETF's processes and so don't feel confident about this.

The Wikipedia article List of HTTP status codes uses this definition of 308, also:

308 Permanent Redirect (approved as experimental RFC)[12]

The request, and all future requests should be repeated using another URI. 307 and 308 (as proposed) parallel the behaviours of 302 and 301, but do not allow the HTTP method to change. So, for example, submitting a form to a permanently redirected resource may continue smoothly.

...

[12]: "The Hypertext Transfer Protocol (HTTP) Status Code 308 (Permanent Redirect)". IETF. 2012. Retrieved March 27, 2012.

Eric Law, of Microsoft at the time, comments on this HTTP/308 code in Pushing the Web Forward with HTTP/308. That caused me to discover that Firefox supports 308 under this meaning.

However, when I was looking in the library, I found that there is another usage of 308:

    308: ('resume_incomplete', 'resume'),

This seems to come from a Google Gears resumable HTTP requests proposal, defining 308 Resume Incomplete. There seems to be some usage of that. Of course, neither of these proposals acknowledges the existence of the other.

So what's going on? Is 308 Permanent Redirect alive? What's happening with the status code 308? What should I do?

Community
  • 1
  • 1
Chris Morgan
  • 86,207
  • 24
  • 208
  • 215
  • Are you asking, from a server perspective, whether you should *issue* a 308 (and if so, under what circumstances), or from a consumer perspective how you should *react* to a 308? – Damien_The_Unbeliever Jan 03 '13 at 18:33
  • @Damien_The_Unbeliever: the question is mostly wondering what's happening with it, is it meaningful, *can* I reasonably use it. In my particular case, I am dealing with the client perspective, wishing to make a future-ready and correct implementation of this and related matters, but I'm also seeking more general information to try to gather it a little - there's not much on it on the web. – Chris Morgan Jan 03 '13 at 18:51

2 Answers2

7

The Internet Draft has not expired (as it was approved before it expired). See https://datatracker.ietf.org/doc/draft-reschke-http-status-308/ and http://www.rfc-editor.org/queue2.html#draft-reschke-http-status-308 for the current publication status.

Julian Reschke
  • 40,156
  • 8
  • 95
  • 98
  • So that means it's been approved but is hanging around waiting for the editors to get to it? What does that mean about 308 in the mean time? That using it as Permanent Redirect would be "invalid"? Then too, what exactly does being approved as an *experimental* RFC mean? – Chris Morgan Jan 25 '13 at 17:43
  • 2
    It is approved, and it is a registered status code. It's just that the RFC won't be published until the other documents that it references are. – Julian Reschke Jan 25 '13 at 23:10
2

Please see Chris Morgan comment below on this question (my original answer referred to http://insanecoding.blogspot.co.il/2014/02/http-308-incompetence-expected.html?m=1 but Chris' reference is much better).

Just to get a sense how far 308 has not gone yet, see the HTTP codes defined in Microsoft's .NET framework V4 (http://msdn.microsoft.com/en-us/library/system.net.httpstatuscode(v=vs.110).aspx ) the HttpStatusCode enumeration). Specifically, no mention of code 308.

Dror Harari
  • 3,076
  • 2
  • 27
  • 25