如何解决错误使用HTTP方法
我正在阅读HTTP请求文档,并且看到了:
每个[HTTP请求]实现了不同的语义,但是具有一些共同的功能 由一组人共享:例如请求方法可以很安全, 幂等或可缓存的。
我必须实现这些功能吗?具体来说,如果我跟踪客户上次何时请求某些信息,那将使我的GET请求更改服务器状态该怎么办?还是如果我使用PUT请求来附加数据而不是替换数据,从而使其不是幂等的?文档专门说不要做以上两件事:
使用GET的请求应仅检索数据。
方法还可以具有“幂等”的特性(除了 从错误或到期问题)N> 0相同的副作用 请求与单个请求相同。方法GET,HEAD, PUT和DELETE共享此属性
解决方法
广泛,是的。
例如,您应该使用POST
或PATCH
进行附加。
您的GET
可以维护客户端的状态(尽管这可能不可扩展),但是只要URL和标头相同,响应就必须相同。
基本上,客户将基于该方法进行假设。这不仅是客户,还包括您与客户之间的任何代理,例如CDN,浏览器代理等。
某些库可能会假设它们可以重试幂等操作,例如GET
和PUT
。如果您的服务器已处理了请求,但响应未按时到达客户端,则这一点很重要。
许多客户端(包括浏览器)假定可以从其本地缓存中返回GET
,因此它们甚至都不会与您的服务器通信。有缓存控制响应标头可以帮助您解决问题。
如果您需要维护客户端状态,则HTTP可能不是您要使用的正确协议,HTTP旨在实现可伸缩性,而维护客户端状态则是可伸缩性的障碍。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。