Exp*_*lls 4 post get http http-get http-post
简而言之,我有一个网站,您可以在其中注册为用户并添加数据。目前只添加一次特定数据才有意义,因此添加应该是幂等的,但理论上您可以多次添加相同的数据。我不会在这里讨论。
根据RFC 2616,GET 请求应该是幂等的(真的是无效的)。我希望用户能够执行诸如访问之类的操作
http://example.com/<username>/add/?data=1
Run Code Online (Sandbox Code Playgroud)
这将添加该数据。让 PUT 请求使用 REST 来执行此操作是有意义的,但我不知道如何使用浏览器发出 PUT 请求,而且我非常怀疑大多数人是否愿意或愿意打扰。即使使用 POST 也是合适的,但这也有类似的问题。
是否有一些技术上正确的方法允许用户仅使用 GET 添加数据(例如,通过手动访问链接,或允许外部网站使用链接)。当他们访问此页面时,我可以使用 javascript 或 cURL 发出自己的 POST/PUT 请求,但这似乎仍然违反了幂等 GET 请求的精神。
是否有一些技术上正确的方法允许用户仅使用 GET ... 添加数据?
无论您如何让客户端访问它,最终都会违反 RFC2616。这最终取决于你如何处理请求(没有什么是打算从这样阻止你),但请记住,如果你违背了HTTP规范,则可能会导致意想不到的副作用给客户和代理谁做遵守它。
另请参阅:为什么不应该在 HTTP GET 请求上修改数据?
至于不能从浏览器 PUT,有解决方法[1],[2],其中大部分使用 POST 但也传递某种_method被服务器拦截的请求参数并路由到适当的服务器 -侧面动作。
| 归档时间: |
|
| 查看次数: |
3275 次 |
| 最近记录: |