HTTPQUERY
日本語

303 See Other

使い方

303 See Other ステータスコードは通常、POST、PUT、DELETE のリクエストのあとに返されます。操作の結果は別の URL で閲覧でき、クライアントは指定された Location に対する GET リクエストで新しいリソースを取得します。

注意

歴史的に、多くのサーバーは 303 を意図しているときに 302 を送信しており、多くのクライアントはリクエストメソッドを GET に変更することで 302 を 303 として扱っています。

SEO への影響

Google は 303 を 302 や 307 と並ぶ一時的なリダイレクトに分類します。Googlebot はリダイレクトを辿りますが、303 をリダイレクト先が優先される URL であるという弱いシグナルとして扱います。

例

クライアントが特定のリソースの削除を要求します。元の場所にはもはや閲覧可能なリソースがないため、サーバーは 303 See Other を送信し、新しい Location にある確認ページを指し示します。

リクエスト

DELETE /tasks/314 HTTP/1.1
Host: example.com

レスポンス

HTTP/1.1 303 See Other
Location: http://example.com/confirmation/delete.html

303 と 307 の比較

303 と 307 はどちらも一時的なリダイレクトですが、メソッドの扱いが異なります。303 レスポンスは元のメソッドにかかわらず、リクエストメソッドを GET(または HEAD)に変更します。307 レスポンスは元のメソッドとボディを保持します。POST のあとにクライアントが結果ページを取得する必要がある場合は 303 を使います。同じリクエストを新しい場所でそのまま繰り返す必要がある場合は 307 を使います。

コードリファレンス

.NET

HttpStatusCode.SeeOther

Rust

http::StatusCode::SEE_OTHER

Rails

:see_other

Go

http.StatusSeeOther

Symfony

Response::HTTP_SEE_OTHER

Python3.5+

http.HTTPStatus.SEE_OTHER

Java

java.net.HttpURLConnection.HTTP_SEE_OTHER

Apache HttpComponents Core

org.apache.hc.core5.http.HttpStatus.SC_SEE_OTHER

Angular

@angular/common/http/HttpStatusCode.SeeOther