我想知道正在尝试的人正确的HTTP错误代码是什么:
PUT /newfile.txt HTTP/1.1
Host: myhost
如果客户端想要添加已存在的文件,那么适当的错误代码是什么?我不知道该使用什么...我查看了RFC但无法找到合适的代码。
答案 0 :(得分:5)
这是一个很少使用的响应代码,但在我看来,409 Conflict
可能最适合您的需求:
由于与当前的冲突,请求无法完成 资源的状态。此代码仅在以下情况下允许 预计用户可能能够解决冲突 重新提交请求。响应机构应该包括足够的内容 用户识别冲突根源的信息。 理想情况下,响应实体将包含足够的信息 用户或用户代理来解决问题;但是,这可能不是 可能而且不是必需的。
最有可能发生冲突以响应PUT请求。对于 如果正在使用版本控制并且实体是PUT 包括对资源的更改与资产的更改 在早期(第三方)请求中,服务器可能会使用409响应 表示无法完成请求。在这种情况下, 响应实体可能包含两者之间的差异列表 这两个版本采用响应Content-Type定义的格式。
答案 1 :(得分:2)
409 Conflict或来自400范围的另一个(如428)将起作用,但可以说,如果您不允许客户端使用PUT覆盖资源,则会中断REST。
PUT应该是幂等的,如果你拒绝根据已经存在的命令执行命令,那么幂等性就会被打破。