用語辞典・エラー・運用

302 Found

302 Foundとは

302 Found(スリー・オー・ツー・ファウンド)は、資源が一時的に別URLにあることを示すリダイレクトのステータスです。

応答のLocation ヘッダーで現在の行き先を示します。リダイレクト先は後で変わり得るため、クライアントはブックマークや将来の要求に元のURIを使い続けるのが基本です。

302は「資源が見つかった」という検索成功コードではありません。歴史的な理由句を持つ、一時リダイレクトのHTTPステータスです。

今回だけ別のURIへ迂回し、将来の入口は元URIに残す季節的ページ、負荷分散、ログイン流れなど一時的な行き先を示す
元のWeb資源とブックマークを残したまま、現在のブラウザーだけを季節限定の別資源へ一時迂回させ、将来は元へ戻す流れを示すピクトグラム図解
図1一時性は「数分だけ」とは限りません。将来の参照先を元URIのままにするという資源管理者の意図です。

302が向く場面

期間限定の宛先代替ページへ一時移動

広報施策、地域別入口、試験中の行き先などを元URIから切り替えます。

ログインの流れ認証ページへ一時移動

認証後に元の安全なパスへ戻す設計と、第三者サイトへ誘導される公開リダイレクトへの対策が必要です。

運用上の迂回一時的な別サービス

メンテナンスや段階移行で正本URIを変えず、行き先だけ変えます。

条件別の試験利用条件ごとに経路を変える

キャッシュとCookieを考慮し、意図しない行き先の固定化を避けます。

302・303・307をメソッドで分ける

コード一時性元要求のメソッド
302一時POSTからGETへ変える利用者エージェントがある
303一時・別表現を参照GETまたはHEADで取得する意図を明示
307一時メソッドと内容を変更しない

フォーム送信後に結果ページをGETで見せたいなら303、アップロードAPIをメソッド・本文ごと一時移動したいなら307が意図を正確に表せます。互換性だけで302を選ばず、クライアントに求める次の要求を決めます。

キャッシュへ一時性を伝える

302は明示的な新鮮さ情報があればキャッシュできます。リダイレクト先を利用者・地域・認証状態で変える場合は、Cache-ControlとVary、共有キャッシュでの個人化データ混在を検討します。

Locationが外部入力から作られるログインリダイレクトでは、許可ホスト・パスを検証します。攻撃者のサイトへ302する公開リダイレクトはフィッシングやトークン漏えいに悪用されます。

ループと連鎖を監視する

A→B、B→Aのループや多段リダイレクトは、ブラウザーの上限・遅延・Cookieの適用範囲へ影響します。ブラウザーのネットワーク管理画面やコマンドラインクライアントで、ステータスとLocationを一段ずつ記録し、スキーム・ホスト・パスの変換を調べます。

302は現在の要求を一時的な別URIへ導き、将来も元URIを入口として残すステータスです。メソッド変更、キャッシュ、オープンリダイレクト、転送ループを考慮し、303・307・301と意図を分けます。

一時的なURI移転とメソッド処理:RFC 9110「302 Found」

関連用語