首页/网络/协议速查/423 Locked 资源被锁定
HTTP 方法与状态码91 条

423 Locked 资源被锁定

WebDAV:目标资源已被锁定,无法执行修改;响应应说明锁信息。

协议速查网络更新于 2026-10-13

423 是什么

423 Locked 是 WebDAV 的锁定语义(RFC 4918 §11.3):目标资源被锁保护,当前请求无权修改。锁由 LOCK 方法创建并携带 Lock-Token,超过 Timeout 后自动失效。现代协作系统多改用应用层乐观锁(版本号、ETag),但 API 返回 423 表示「资源正被他人编辑中」依然常见。

基本信息

名称423 Locked
类别4xx
规范RFC 4918 §11.3(WebDAV)
相关方法LOCK、UNLOCK、PUT
响应线索Lock-Token 与 DAV 前置条件信息
同类实现在线文档协作、CMS 检出(checkout)机制

典型使用场景

  • 在线协作编辑:别人正在编辑时拒绝覆盖写入
  • CMS 与网盘:检出机制锁定文件,未检入前禁止提交
  • 客户端重试策略:带锁令牌重发,或提示用户稍后再试
  • 排障:区分 403(无权限)与 423(被锁)两类拒绝
  • 锁超时设计:评估锁的有效期与自动释放策略
  • 分布式客户端:先 LOCK 再 PUT 的正确调用顺序

锁冲突与查看锁信息

锁冲突与查看锁信息
# WebDAV 写入被锁拒绝
curl -si -X PUT https://dav.example.com/docs/spec.docx --data-binary @spec.docx
# HTTP/1.1 423 Locked
# DAV: <opaquelocktoken:...>     ← 锁被其他会话持有

# 查看资源当前的锁信息(lockdiscovery 属性)
curl -si -X PROPFIND https://dav.example.com/docs/ -H 'Depth: 1'

拒绝写入的几种码

状态码含义判断依据
401 与 403未认证或无权限身份与 ACL 配置问题
423资源被锁响应里带锁令牌
409版本或路径冲突目录不存在、版本不符
412前置条件不满足If-Match 或 If-Unmodified-Since 失配
423 是暂时性拒绝:锁超时或持有者释放后即可重试,客户端应有退避重试而不是直接报失败。
WebDAV 锁带有深度(Depth 为 0 或 infinity)与超时(Timeout 头)属性;把整个集合锁住会影响集合内所有成员。
应用层乐观锁(版本号)与 WebDAV 强制锁解决的是同类问题,但前者冲突时通常返回 409 或 412,不要用 423 的语义去套。
锁有持有者信息:排障时先确认锁是哪个会话或客户端创建的,再决定是等待超时还是联系持有者释放。
非持锁方无法通过 UNLOCK 释放锁;异常退出导致的残留锁只能等超时,因此超时值要结合业务编辑时长设置。

易错点

  • 把 423 当永久失败会让协作流程卡死:锁有超时,客户端应退避重试或提示用户
  • 未携带锁令牌的写入必然被拒:分布式客户端需要先 LOCK 再 PUT,或用条件头提交令牌
  • 用 403 表示「被锁」会让调用方误判为权限问题:两者语义不同,修法也不同
  • 锁超时设置过长会让资源长期无法被他人编辑,过短则频繁中断编辑会话

数据来源与参考

  • RFC 4918 §11.3 423 Locked

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌