3xx リダイレクション
3xx コードは、ユーザーエージェントが要求されたリソースを完全に取得するために別のアクションを取る必要があることを示す応答のクラスです。
リダイレクト先は、以下のいずれかに設定する必要があります:
- 応答の
Locationヘッダー フィールド、自動リダイレクトに便利 - 修正先へのハイパーリンク(オプション)を含む応答のペイロード
300 複数の選択肢 (RFC7231 ↗)
クライアントが従うことができるリソースの複数のオプション。たとえば、ビデオの異なるフォーマットオプションを提示したり、異なる 拡張子 ↗ を持つファイルのリストを表示したり、 語義の曖昧性解消 ↗ に使用されることがあります。
301 永久移動 (RFC7231 ↗)
要求されたリソースの永久的な URL リダイレクト。ターゲットリソースには新しい永久 URI が割り当てられており、このリソースへの将来の参照は、同封された URI のいずれかを使用する必要があります。
Cloudflare はこれらの応答を生成でき、ページルールを使用してオリジンサーバーへのリクエストを送信する必要を回避します。Cloudflare がどのようにリダイレクトを生成できるかについては、リダイレクトルールを参照してください。
302 発見 (一時的リダイレクト) (RFC7231 ↗)
301 リダイレクトに似ていますが、一時的な目的のみに使用されます。ユーザーエージェントは自動的に Location ヘッダーに従うことができますが、301 のように現在の URI を置き換えるべきではありません。
Cloudflare はこれらの応答を生成でき、ページルールを使用してオリジンサーバーへのリクエストを送信する必要を回避します。Cloudflare がどのようにリダイレクトを生成できるかについては、リダイレクトルールを参照してください。
303 他を参照 (HTTP/1.1 以降) (RFC7231 ↗)
ユーザーエージェントは、このリダイレクトを GET リクエストでフォローする必要があります。注:リダイレクト先のリソースは、要求されたものと必ずしも同等ではない点が301と異なります
- POST または DELETE リクエストに応じて使用され、オリジンサーバーがデータを正しく受信したことを示し、適切なキャッシュ動作を許可します。
- 元の 303 応答はキャッシュ可能ではありませんが、2 回目のリクエスト(
GET)への応答は、異なる URI の下にあるためキャッシュ可能です。
304 未変更 (RFC 7232 ↗)
要求されたリソースがキャッシュ内で利用可能かつ有効であることをクライアントに通知します。オリジンサーバーは、要求されたリソースを変更していません。クライアントは、オリジンサーバーに再接続することなく、指定されたリソースのペイロードを受け取ることができるため、要求を保存されたリソースを使用するようにリダイレクトしています。304 応答を受け取るキャッシュの要件は、セクション 4.3.4 of [RFC7234] ↗ に定義されています。
この応答の前に、クライアントは現在保存されているリソースを指定する条件付き GET または HEAD リクエストを送信しました。サーバーは、クライアントにこのリソースを最新のバージョンとして使用する「OK」を与え、クライアントとサーバー間のデータ転送量を削減します。
- メッセージボディを持ってはいけません
- ミラーされた 200 応答の前に設定されていたヘッダーのいずれかを含む必要があります:
Cache-Control, Content-Location, Date, ETag, Expires,またはVary.
Cloudflare に対して古くなったリクエストが行われ、オリジンで再検証する必要がある場合、Cloudflare は 304 応答を送信して、キャッシュ内のバージョンがオリジンのバージョンと一致していることを確認します。応答には CF-Cache-Status: REVALIDATED ヘッダーが含まれ、Cloudflare は If-Modified-Since ヘッダーを使用してバージョンを確認します。詳細については、ETag ヘッダーを参照してください。
305 プロキシを使用 (RFC7231 ↗)
リクエストは、オリジンを介さずに Location ヘッダーに指定されたプロキシ URI を通じて満たされなければなりません。このステータスコードは、セキュリティリスクのために廃止されました。
306 プロキシを切り替え (RFC7231 ↗)
次のリクエストは、指定されたプロキシに向けられる必要があることを通知します。
307 一時的リダイレクト (RFC7231 ↗)
302 応答に似たリダイレクトですが、リクエストメソッド(例:GET、POST..)は、自動的にリダイレクトに従う場合、元のリクエストで使用されたものと異なってはなりません。
- ユーザーエージェントは自動的に
Locationヘッダーに従うことができますが、元の URI を置き換えるべきではありません
308 永久リダイレクト (RFC 7538 ↗)
301 に似た永久リダイレクトですが、リクエストメソッド(例:GET、POST..)は、自動的にリダイレクトに従う場合、元のリクエストで使用されたものと異なってはなりません。
- ユーザーエージェントは自動的に
Locationヘッダーに従うべきです - ユーザーエージェントは、元の URI を Location またはペイロード内の更新されたものに置き換えるべきです