TrueURL
TrueURL

メニュー

428 前提条件が必要

複数のクライアントが同じリソースを編集する際の更新の消失を防ぐため、サーバーが条件付きリクエスト(If-Match)を要求していることを示します。

リーズンフレーズ
Precondition Required
リダイレクト
いいえ
デフォルトでキャッシュ可能
いいえ

428 Precondition Required(RFC 6585)は、オリジンサーバーがリクエストを条件付きにするよう求めていることを示します。これは「更新の消失」問題を防ぐためのものです。クライアントがリソースを読み取って変更し、PUT で書き戻すと、その間に誰かが加えた変更を上書きしてしまうという問題です。

サーバーは条件なしの書き込みに 428 で応答することで、読み取った ETag を If-Match に付けて送るようクライアントに強制します。そうすれば、リソースが変更されていた場合、条件付きリクエストはデータを黙って上書きするのではなく、412 Precondition Failed で失敗します。レスポンスでは、リクエストを正しく再送する方法を説明するべきです。

レスポンス例

HTTP
HTTP/1.1 428 Precondition Required
Date: Fri, 06 Nov 2026 10:15:32 GMT
Content-Type: application/json
Content-Length: 71

{"error":"Send If-Match with the current ETag to update this resource"}

SEO とリダイレクトチェック

SEO への影響はありません。428 が適用されるのは API や共同編集での書き込みリクエストで、クローラーの GET リクエストで発生することはありません。

よくある原因と主な用途

  • API が PUT、PATCH、DELETE に If-Match を必須としているのに、クライアントがそれを送らなかった場合。
  • 共同編集のドキュメントサービスが、楽観的ロックを強制している場合。
  • ETag に対応していないクライアントライブラリが、そうした API と通信している場合。

URL リダイレクトチェッカー

無料の TrueURL リダイレクトチェッカーで、URL が返すすべてのステータスコードをホップごとに確認できます。