我正在设计一个 API,其中客户端PUT
sa 文件到服务器,但服务器可能已经有这个文件的副本,不需要重新上传。
我已经计划使用Expect: 100-continue
,以便服务器可以在客户端执行整个低效上传之前通知客户端。
我的问题是,在服务器不需要上传的情况下,返回的最佳状态代码是什么?100 Continue
通常,客户端可以发送一个标头,如果已经匹配If-None-Match
,服务器可以用 a 响应。412 Precondition Failed
但是,就我而言,重复数据删除几乎是一个实现细节,我不希望客户关心知道重复数据删除策略(例如要匹配的值是什么)。
a 302 Found
、 a303 See Other
或 a304 Not Modified
有意义吗?
它似乎4xx
不合适,因为它不是客户端错误,也不是5xx
因为我不想触发客户端中的任何自动重试逻辑。
谢谢!