gpt4 book ai didi

rest - HTTP 响应 412 - 你能包含内容吗?

转载 作者:可可西里 更新时间:2023-11-01 15:20:24 25 4
gpt4 key购买 nike

我正在构建一个 RESTful 数据存储并利用条件 GET 和 PUT。在有条件的 PUT 期间,客户端可以包含来自资源上先前 GET 的 Etag,如果当前表示不匹配,服务器将返回 412(前提条件失败)的 HTTP 状态代码。请注意,这是一个基于 Atom 的服务器/协议(protocol)。

我的问题是,当我返回 412 状态时,我是否还可以包含资源的新表示形式,或者用户是否必须发出新的 GET? HTTP 规范似乎没有说是或否,Atom 规范也没有(尽管他们的示例在响应中显示了一个空实体主体)。不返回新表示并让客户端专门获取它似乎很浪费。想法?

最佳答案

虽然条件 GET 和 PUT 被概括为“条件请求”,但它们在概念上有很大不同。条件 GET 是一种性能优化,条件 PUT 是一种并发控制机制。很难一起讨论它们。

关于条件 GET 的问题:如果您发送 GET 并包含 If-None-Match header ,如果资源已更改,服务器将发送 200 Ok,如果没有更改(如果条件失败),则服务器将发送 304 Not Modified。 412 只能与条件 PUT 一起使用。

更新:看来我稍微误读了这个问题。关于在条件 PUT 失败时“刷新”本地副本的观点:很可能是缓存已经具有最新版本,并且您的刷新 GET 将从某个缓存提供服务。让服务器返回带有 412 的当前实体实际上可能会给您带来更差的性能。

关于rest - HTTP 响应 412 - 你能包含内容吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2692829/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com