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 返回的每一个状态码。