前書き
Wikipediaの情報が不完全だったので個人的にまとめておきます。
早見表
コード | フレーズ | 用途 | GETへの変更 |
---|---|---|---|
301 | Moved Permanently | 恒久的な移動 | 許可 |
302 | Found | 一時的な移動 | 許可 |
303 | See Other | 新規リソースへの移動 | 強制 |
307 | Temporary Redirect | 一時的な移動 | 禁止 |
308 | Permanent Redirect | 恒久的な移動 | 禁止 |
※「許可」は実質、ほとんどのブラウザでGETに変更される模様です。
具体例
掲示板への投稿が終わって遷移させるときは…
303 See Other
を使いましょう。過去には 302 Moved Temporarily
(302 Found
の以前の名称) が使われていましたが、現在では迷わずこれ1択です。
メンテナンス中にお知らせページに飛ばしたいときは…
302 Found
または 307 Temporary Redirect
を使いましょう。「POSTのままお知らせページに飛ばす」ようにしても特に意味が無さそうなので、302 Found
のほうがナチュラルと言えるかもしれません。
【追記】
もしURLを変更せずにそのページで即503 Service Unavailable
で返せるような設計になっていれば、そうしたほうが良いでしょう。
サイトを移転したときは…
301 Moved Permanently
または 308 Permanent Redirect
を使いましょう。「POSTのまま新しいサイトに飛ばす」ようにしても特に意味が無さそうなので、301 Moved Permanently
のほうがナチュラルと言えるかもしれません。