REST / HTTP:防止缓存上传的最佳状态代码?

时间:2013-07-23 15:48:04

标签: api http rest

我正在设计一个API,其中客户端PUT是服务器的文件,但服务器可能已经拥有此文件的副本,不需要重新上传。

我已经计划使用Expect: 100-continue,以便服务器可以在客户端执行整个低效上传之前通知客户端。

我的问题是,在服务器不需要上传的情况下,返回的最佳状态代码是什么,而不是100 Continue

通常,客户端可以发送If-None-Match标头,如果已经匹配,服务器可以使用412 Precondition Failed进行响应。

但是,就我而言,重复数据删除几乎是一个实现细节,我不希望客户关注知道重复数据删除策略(例如,匹配的值是)。

302 Found303 See Other304 Not Modified会有意义吗?

4xx似乎不合适,因为它不是客户端错误,也不是5xx,因为我不想在客户端中触发任何自动重试逻辑。

谢谢!

2 个答案:

答案 0 :(得分:0)

从客户的角度来看,PUT成功了。所以我相信2xx状态代码是正确的;例如200,消息正文给出状态消息。

答案 1 :(得分:-1)

至少使用cURL作为客户端,结果证明304效果很好。