307 Temporary Redirect 一時的なリダイレクトを示すHTTPステータスコード

スポンサーリンク
スポンサーリンク

307 Temporary Redirectについて

307 Temporary Redirectの概要

一時的なリダイレクトを示す(リクエストメソッド保持)HTTPステータスコード

307 Temporary Redirect

概要 307 Temporary Redirectは、リクエストされたリソースが一時的に別のURLで利用可能であることを示すHTTPステータスコードです。このコードは、302 Foundに似ていますが、重要な違いとして、クライアントが元のリクエストメソッド(POST、PUTなど)をそのまま使用する必要があります。

クライアントは提供された情報を元に選択を行い、適切なリソースにアクセスする必要があります。

307 Temporary Redirectはどのような時に使用されるか

  • リソースが一時的に別の場所で利用可能である場合
  • 元のリクエストメソッドを保持したままリダイレクトする必要がある場合
  • 一時的なURL変更を通知しつつ、クライアントの操作を保持したい場合

SEOに関する影響

307リダイレクトは一時的なリダイレクトであり、検索エンジンは通常、元のURLをインデックスします。長期間307リダイレクトを使用すると、SEO評価が分散する可能性があるため、恒久的な変更の場合は308 Permanent Redirect301 Moved Permanentlyを使用することが推奨されます。

307 Temporary Redirectの事例

一時的なURL変更

POST /submit-form HTTP/1.1  
Host: example.com  

レスポンス例:

HTTP/1.1 307 Temporary Redirect  
Location: https://example.com/temp-form  

解説: サイトメンテナンスやリソースの一時的な移動時に、元のフォームデータやリクエスト内容を保持したまま、クライアントを一時的なリソースに誘導します。この場合、クライアントはリクエストメソッド(POST)をそのまま維持して再送信します。

APIリクエストの一時的なリダイレクト

PUT /resource/123 HTTP/1.1  
Host: example.com  

レスポンス例:

HTTP/1.1 307 Temporary Redirect  
Location: https://api.example.com/resource-temp/123  

解説: APIでの操作中に、一時的に別のエンドポイントを利用する必要がある場合に307ステータスコードを使用します。リクエストメソッド(PUT)を維持するため、クライアントはリクエスト内容をそのまま新しいエンドポイントに送信します。

利用における注意点

307リダイレクトを設定する際の注意点:

  • リクエストメソッドの保持
    クライアントが元のリクエストメソッドを使用する必要があることを理解して設定します。
  • 適切なLocationヘッダーの指定
    リダイレクト先のURLが正しいリソースを指していることを確認してください。

関連するHTTPステータスコードとの比較

307 Temporary Redirectと関連性のあるステータスコードについて解説します。

  • 302 Found: 一時的なリダイレクトを示しますが、リクエストメソッドがGETに変更される場合があります。
  • 308 Permanent Redirect: 恒久的なリダイレクトであり、元のリクエストメソッドを保持する点で307と似ています。

これらの違いを理解することで、適切な用途で307ステータスコードを利用できます。