11

Is it safe to use the HTTP status code 308 Permanent Redirect (suggestion) in server responses? The issue with 301 Moved Permanently is that it only works with GET requests (to be fair: POST will transform to GET which is NOT an option).

The status code is very newish in "RFC time" so what would you suggest?

What would a browser do if its not aware of 308? Would it find the location and do 302?

8
  • Newer even than you seem to realize; it's an RFC now. Jul 3, 2014 at 14:01
  • 1
    Did you read the Deployment Considerations section? Jul 3, 2014 at 14:02
  • 308 is not a standard - it's a proposal, still in the experimental stage. Browers should fall back to a 300 interpretation of any 301-399 error that they don't specifically understand.
    – Chris S
    Jul 3, 2014 at 14:03
  • 1
    Under what scenario would you expect to receive a POST request sent directly to an outdated URL?
    – Skyhawk
    Jul 3, 2014 at 14:25
  • 1
    @Skyhawk : I work with offline features “of“ html5. For comments or creating new posts the target url may have changed due to modification to the post itself out its categories.
    – burnersk
    Jul 8, 2014 at 20:08

3 Answers 3

4

Although 308 is now a standard (https://www.rfc-editor.org/rfc/rfc7538), it is not currently Safe [Edit] (as of 3 April 2019), especially for desktop applications, but may be almost safe in some specific regions (e.g. India), or for applications targeted at tablets and mobile devices.

The lack of safety is because IE 11 on Windows 7 and 8.1 does not support it. In IE 11 the site just appears to hang. Luckily the IE that shipped with Windows 10 does support it, so it will be just a case of waiting until the general populous moves on from Windows 7 (Win 7 has only just been surpassed by Win 10 in global usage stats, Win 8 is significantly less popular than both) [Edit] or your company makes a decision to no longer support it (which you can make a very strong case for from 14th January 2020 when Windows 7 loses even long term support), and even more so from 15th June 2022 when IE itself will no longer be supported (see the download page for it).

All other modern browsers support it (Chrome, Firefox, Safari, Edge, Opera).

[Edit] Usage stats from March 2019 to help make your decision:

  • 36.52% of desktop users are still on Windows 7
  • 9.83% of desktop users were on IE; as Win10 pushed Edge so much, I'd assume most of these users to be on Win 7.

[Edit] Usage stats from March 2022:

  • 24.79% of desktop users are still on Windows 7
  • 4.84% of desktop users were on IE; as Win10 pushed Edge so much, I'd assume most of these users to be on Win 7. Ref netmarketshare

So, a decision to use 308 would affect less than 5% of desktop users as of this edit (2022-03-11). If your application is geared more towards tablets/mobile devices, this value will be significantly lower. Similarly if your app is specifically for the Indian market.

You can test if your browser supports 308 redirects here: https://webdbg.com/test/308/

1
  • Note that this is different from 307. IE 11 on Windows 7 supports HTTP 307 without issue. (Why?) Aug 7, 2018 at 19:09
7

https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/308

The RFC 7538 proposal have wide support today. It's safe.

308 instead 301. 307 instead 302.

move != redirect

Move reminds a specific address and/or file moved. Redirect is a new location or address.

3
  • 1
    As of now (20 Feb 2018) it is not yet safe due to the number of people on Windows 7 using IE 11 which still does not support this.
    – monty
    Feb 19, 2018 at 20:53
  • @monty what was that number? what is it now? Mar 30, 2019 at 14:18
  • As of March 2019, 36.52% of desktop users are still on Windows 7, and 9.83% of desktop users were on IE.
    – monty
    Apr 2, 2019 at 23:47
3

To end this: No it is not safe to use that status code. See comments for details.

308 is not a standard - it's a proposal, still in the experimental stage. Browers should fall back to a 300 interpretation of any 301-399 error that they don't specifically understand.

Some browsers just fail completely on that status code.

3

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.