繁体   English   中英

来自非修改 POST 请求的 304 响应

[英]304 response from a non modifying POST request

我正在处理 POST HTTP API,它不会在服务器上修改或创建任何 state。 API 是使用 POST 方法实现的,因为它需要接受多个复杂的输入,而使用查询参数是不可能的。

在这种只读 POST API 的条件检查失败( If-Match / If-None-Match )的情况下,返回的正确响应状态是什么,应该是304 Not Modified还是412 Precondition Failed

注意:这是一个内部服务 API,客户端知道这是一个非修改请求。

对于 GET 请求,我们期望 If-None-Match header,如果条件成立,它通常会产生 200 响应和表示的更新副本,当前提条件失败时产生 304 响应(意味着客户端副本资源已经是最新的)。

当我们以只读方式使用 POST 时,语义应该是相同的。 (请注意,我们在这里有点边缘情况;通用客户端通常不会知道这个特定的 POST 请求是安全的,并且可能不知道将哪些前提条件标头附加到请求。例如,如果您尝试在 web 浏览器中使用 HTML 表单来访问此资源,您可能不会获得所需的条件标头。)

412 Precondition Failed 通常在请求修改资源时使用,结合 If-Match header。

参考: HTTP 语义,第 13 节

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM