The RFC州:
10.4.6 405不允许的方法
请求行中指定的方法不允许使用 Request-URI标识的资源。响应必须包括一个 允许包含所请求的有效方法列表的标头 资源。
但是,我一直无法确定一台符合该规定的服务器。
我可以看到,鉴于存在各种代理,动态应用程序等,现代Web服务器很难实现该要求非常。
此外,为什么服务器返回405用于BOGUS等明显未由服务器实现的方法,即使在提供文档而不代理或调用某些代码(cgi / etc)时,它们应该返回501?
如果HTTP的这些部分被认为是“残留的”,那么看看是否有任何服务器符合规范?
实际上,大多数框架都没有那么难以正确地返回'允许'。我所知道的所有框架都需要指定将要调用特定控制器的方法(通常默认为GET),并且代码可以轻松地使用框架注册扩展方法以便返回。
到目前为止,证据似乎指出a)没有人阅读规范而且没有人知道这个要求,b)没有人关心这个特征。
答案 0 :(得分:2)
尝试直接回答问题:
要求仍然是有道理的,尤其是 - 正如Meryn's comment对HATEOAS API所说的那样。
由于a server is "An application program that accepts connections in order to service requests by sending back responses"很容易说是 - 因此网上有应用依赖它。 ;)一个这样的用例是使用405
向POST /resource/1/
回复Allow: GET, HEAD, PUT, DELETE
,以表明该资源不是"factory resource"。
由于资源允许的方法因应用程序逻辑而异,我们还应该考虑应用程序服务器 - 正如您在问题中指出的那样。在这种情况下,是 - 例如,django returns a proper Allow
header with 405
responses。