3. 428 事前条件が必要 (Precondition Required)
428 ステータスコードは、オリジンサーバーがリクエストが条件付きであることを要求していることを示します。
その典型的な使用法は、"更新の喪失" 問題を回避することです。この問題は、クライアントがリソースの状態を GET し、それを変更して PUT でサーバーに戻す間に、第三者がサーバー上の状態を変更し、競合が発生する場合に起こります。リクエストを条件付きにすることを要求することで、サーバーはクライアントが正しいコピーで作業していることを保証できます。
このステータスコードを使用するレスポンスは、リクエストを正常に再送信する方法を説明すべきです (SHOULD)。例えば:
HTTP/1.1 428 Precondition Required
Content-Type: text/html
<html>
<head>
<title>Precondition Required</title>
</head>
<body>
<h1>Precondition Required</h1>
<p>This request is required to be conditional;
try using "If-Match".</p>
</body>
</html>
428 ステータスコードを持つレスポンスは、キャッシュによって保存されてはなりません (MUST NOT)。