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

And*_*raz 3 http

我想知道对于尝试执行以下操作的人来说正确的HTTP错误代码是什么:

PUT /newfile.txt HTTP/1.1
Host: myhost
Run Code Online (Sandbox Code Playgroud)

如果客户端要添加一个已经存在的文件,什么是适当的错误代码?我不知道该用什么...我看过RFC,但是找不到合适的代码。

Jak*_*uld 5

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

由于与资源的当前状态存在冲突,因此无法完成请求。仅在预期用户可能能够解决冲突并重新提交请求的情况下才允许使用此代码。响应主体应该包含足够的信息,以使用户能够识别冲突的根源。理想情况下,响应实体应包括足够的信息供用户或用户代理解决问题。但是,这可能是不可能的,也不是必需的。

响应PUT请求最有可能发生冲突。例如,如果正在使用版本控制,并且正在PUT的实体包括对资源的更改,该更改与先前的(第三方)请求所进行的更改冲突,则服务器可能会使用409响应来指示它无法完成请求。在这种情况下,响应实体可能会以响应Content-Type定义的格式包含两个版本之间差异的列表。