Cor*_*son 8 rest http web-frameworks web
RFC规定:
10.4.6 405不允许的方法
请求行中指定的方法不允许由Request-URI标识的资源.响应必须包含一个Allow标头,其中包含所请求资源的有效方法列表.
但是,我一直无法确定一台符合MUST的服务器.
我可以看到,这一要求将是非常考虑到存在的各种代理,动态应用程序等,很难与现代的Web服务器来完成.
另外,为什么服务器返回405用于BOGUS等明显未由服务器实现的方法,即使在提供文档而不代理或调用某些代码(cgi/etc)时,它们应该返回501?
如果HTTP的这些部分被认为是"残留的",那么如果有任何服务器符合规范,那么这些部分是否很少?
实际上,大多数框架都没有那么难以正确地返回'允许'.我所知道的所有框架都需要指定将要调用特定控制器的方法(通常默认为GET),并且代码可以轻松地向框架注册扩展方法以便返回.
到目前为止,证据似乎指向a)没有人阅读规范,没有人知道这个要求,b)没有人关心这个功能.
尝试直接回答问题:
该要求仍然有意义,特别是 - 正如Meryn对 HATEOAS API 的评论所述。
由于服务器是“接受连接以便通过发回响应来服务请求的应用程序”,因此很容易说是 - 网络上有依赖于它的应用程序。;) 一个这样的用例是响应405withPOST /resource/1/来Allow: GET, HEAD, PUT, DELETE指示该资源不是“工厂资源”。
由于资源上允许的方法可能因应用程序逻辑而异,因此我们还应该考虑应用程序服务器 - 正如您在问题中指出的那样。在这种情况下,是的 - 例如,django 返回一个带有响应的正确Allow标头405。