gpt4 book ai didi

rest - PUT 的 HTTP 状态代码

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

PUT 请求可以有很多结果,我想知道哪种状态代码最适合每个结果。

假设我想创建一个新资源,那么我会做类似的事情:

PUT http://example.com/resources/resource-1

我会得到一个 HTTP 201,因为已经创建了一个新资源。

现在我想更新这个资源,所以我用新的内容做了同样的请求:

PUT http://example.com/resources/resource-1

我得到 HTTP 200HTTP 204,因为资源已更新。但是,如果我以相同的内容再次发送此请求怎么办?服务器是否应该返回 HTTP 200HTTP 204,即使没有任何更新?

我知道 HTTP 200HTTP 204 都意味着请求已成功处理,即使数据没有改变,请求也可以(并且应该)仍然被成功处理。但是有没有办法告诉客户端请求已成功处理但服务器端没有任何变化?如果有,它应该用于 PUT 请求吗? PUT是幂等的,是否应该根据服务器端的实际处理返回不同的状态(只要处理过程中不出错)?

最佳答案

But is there a way to tell the client that the request has been successfully processed but nothing has changed on the server side?

是的,但这不是状态代码的用途。

要么返回 200 OK 和实体的表示,要么返回 204 No Content 并且什么都不返回。

如果不应用任何更改,请使用像 ETag 这样的 header 。客户端可以将 ETag 与其之前的值进行比较,并确定没有任何变化。

关于rest - PUT 的 HTTP 状态代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34087272/

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