【问题标题】:HTTP status: 409 vs 428HTTP 状态:409 与 428
【发布时间】:2017-12-10 07:36:55
【问题描述】:

来自List of HTTP status code (Wikipedia) 它说:

409 冲突

表示由于请求中的冲突而无法处理该请求,例如多个同时更新之间的编辑冲突。

还有

需要 428 前提条件 (RFC 6585)

源服务器要求请求是有条件的。旨在防止“丢失更新”问题,即客户端获取资源的状态,对其进行修改,然后将其放回服务器,同时第三方已修改服务器上的状态,从而导致冲突。”

然而,428 项中提到的“丢失更新” 问题不正是 中提到的“编辑冲突” 问题409项目?

那么问题是这两个状态码有什么区别,我们什么时候应该使用它们中的哪一个?

【问题讨论】:

  • 许多开发人员只是忽略了所有这些状态代码,而是通过标题通知客户端。但是非常常见的代码当然仍在使用,例如身份验证相关状态。我相信客户(如 chrome、ff 等)甚至不会在 409 和 428 状态码之间产生区别

标签: http http-status-codes http-status http-status-code-409


【解决方案1】:

您发送 428 以向客户端表明您接受有条件的请求。

(条件请求是那些携带“条件”请求头字段的请求,如https://www.greenbytes.de/tech/webdav/rfc7232.html中所述)

【讨论】:

  • 您能否详细说明有条件的请求?与维基百科页面中描述的 lost update 问题有什么关系?
  • 我认为他的意思是您仅在要求请求具有“条件”请求标头字段时才使用 428
猜你喜欢
  • 2018-01-01
  • 2017-12-17
  • 1970-01-01
  • 2012-05-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-06-08
相关资源
最近更新 更多