Skip to main content

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) 被缓存存储。