DevToolPal
简
4xx 客户端错误

409 Conflict

冲突

含义

请求与资源的当前状态冲突,例如重复数据或并发编辑。

常见原因

  • 创建已存在的记录(邮箱或名称必须唯一)
  • 编辑的资源已被他人修改
  • 类似 git 的版本或状态冲突

解决方法

客户端或访问者

获取最新状态,解决冲突或换一个值,然后重试。

网站或 API 的维护者

在响应体中说明冲突的内容。对于基于 ETag 的乐观锁,412 是更准确的状态码。

响应示例

HTTP/1.1
HTTP/1.1 409 Conflict
Date: Tue, 07 Oct 2025 09:30:00 GMT
Server: nginx
Content-Type: application/problem+json

{
  "type": "about:blank",
  "title": "Conflict",
  "status": 409,
  "detail": "A user with this email already exists."
}

规范

RFC 9110 §15.5.10

常见问题

› 重复邮箱应该返回 409 还是 422?

两者都有人用。409 适合与已有数据冲突的情况;422 适合校验框架。保持一致即可。

› 客户端应该自动重试 409 吗?

不应该;冲突通常需要人来做决定。先刷新数据。