对于已存在的文件,什么是适当的HTTP响应代码?

时间:2014-04-04 15:44:27

标签: http

我想知道正在尝试的人正确的HTTP错误代码是什么:

PUT /newfile.txt HTTP/1.1
Host: myhost

如果客户端想要添加已存在的文件,那么适当的错误代码是什么?我不知道该使用什么...我查看了RFC但无法找到合适的代码。

2 个答案:

答案 0 :(得分:5)

这是一个很少使用的响应代码,但在我看来,409 Conflict可能最适合您的需求:

  

由于与当前的冲突,请求无法完成   资源的状态。此代码仅在以下情况下允许   预计用户可能能够解决冲突   重新提交请求。响应机构应该包括足够的内容   用户识别冲突根源的信息。   理想情况下,响应实体将包含足够的信息   用户或用户代理来解决问题;但是,这可能不是   可能而且不是必需的。

     

最有可能发生冲突以响应PUT请求。对于   如果正在使用版本控制并且实体是PUT   包括对资源的更改与资产的更改   在早期(第三方)请求中,服务器可能会使用409响应   表示无法完成请求。在这种情况下,   响应实体可能包含两者之间的差异列表   这两个版本采用响应Content-Type定义的格式。

答案 1 :(得分:2)

409 Conflict或来自400范围的另一个(如428)将起作用,但可以说,如果您不允许客户端使用PUT覆盖资源,则会中断REST。

PUT应该是幂等的,如果你拒绝根据已经存在的命令执行命令,那么幂等性就会被打破。