何者にもなれていない5年目のエンジニアブログ

ステータスコード302と303の違い

今日ステータスコード200と302の説明を少し受けたので補足。

wikiより、http://ja.wikipedia.org/wiki/HTTPステータスコード

302 Found

発見した。リクエストしたリソースが一時的に移動されているときに返される。Location:ヘッダに移動先のURLが示されている。 元々はMoved Temporarily(一時的に移動した)で、本来はリクエストしたリソースが一時的にそのURLに存在せず、別のURLにある場合に使用するステータスコードであった。しかし、例えば掲示板やWikiなどで投稿後にブラウザを他のURLに転送したいときにもこのコードが使用されるようになったため、302はFoundになり、新たに303,307が作成された。

303 See Other

他を参照せよ。リクエストに対するレスポンスが他のURLに存在するときに返される。Location:ヘッダに移動先のURLが示されている。 リクエストしたリソースは確かにそのURLにあるが、他のリソースをもってレスポンスとするような場合に使用する。302の説明で挙げたような、掲示板やWikiなどで投稿後にブラウザを他のURLに転送したいときに使われるべきコードとして導入された。

ん?リダイレクトは302は使っていて・・あれ?302と303の使い分けがわからない。

ってことで調べてみた

簡単に302と303の違いについて

http://www.onflow.jp/cyano/archives/161

お、書いてありました

GET動詞(aタグのリンクをクリックしたときなどですね)でリクエストされたリソースのURIが一時的に変更になった場合は、『302 Found』か『307 Temporary Redirect』を返すと良いそうです。『302 Moved Temporarily』が返された場合、リクエストに使った動詞(GETとかPOSTとか)を変更してはいけないがルールだそうです。

うーん。これ大事なのか・・どっちでもいい気が