Loading article…
HTTP応答ステータス コード302 Found は、URL リダイレクトを実行する一般的な方法です。HTTP/1.0 仕様 ( RFC 1945) では、このコードが最初に定義され、「Found」ではなく「Moved Temporarily」という説明フレーズが付けられました。
このステータス コードを含む HTTP 応答では、ヘッダー フィールドLocationにURLが追加で提供されます。これは、ユーザー エージェント(Web ブラウザーなど) に対して、location フィールドで指定された新しい URL への 2 回目の (それ以外は同一の) 要求を行うよう促すものです。最終結果は、新しい URL へのリダイレクトです。
多くのウェブブラウザはこのコードをこの標準に違反する方法で実装しており、元のリクエストで使用されたタイプ(例:POST )に関係なく、新しいリクエストのリクエストタイプをGETに変更していました。[1]このため、HTTP/1.1(RFC 2616)では、2つの動作を明確にするために新しいステータスコード303と307が追加されました。303はリクエストタイプを GET に変更することを義務付け、307は最初に送信されたリクエストタイプを保持します。この曖昧さの解消によって明確さが向上したにもかかわらず、302コードは、HTTP/1.1仕様を実装していないブラウザとの互換性を保つために、ウェブフレームワークで依然として使用されています。[2]
その結果、RFC 7231(RFC 2616の更新版)では定義が変更され、ユーザーエージェントがPOSTをGETに書き換えられるようになりました。[3]
例
クライアントのリクエスト:
GET /index.html HTTP / 1.1
ホスト: www.example.com
サーバー応答:
HTTP / 1.1 302 見つかりました
場所: http://www.iana.org/domains/example/
参照
参考文献
- ^ Lawrence, Eric. 「HTTP メソッドとリダイレクト ステータス コード」。EricLawの IEInternals ブログ。2011 年 8 月 20 日閲覧。
- ^ 「リクエストオブジェクトとレスポンスオブジェクト | Django ドキュメント | Django」。 Docs.djangoproject.com 。 2014 年 6 月 23 日閲覧。
- ^ 「ハイパーテキスト転送プロトコル (HTTP/1.1): セマンティクスとコンテンツ」。Tools.ietf.org 。 2019年1月5日閲覧。
外部リンク
- RFC 9110 HTTPセマンティクス
