管道化 PUT 和/或 POST 请求有哪些缺点?
我听说 PUT 和 POST 请求不应该被管道化。为什么 ?
I've heard PUT and POST requests should not be pipelined. Why ?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
我听说 PUT 和 POST 请求不应该被管道化。为什么 ?
I've heard PUT and POST requests should not be pipelined. Why ?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(2)
这归结为幂等
非幂等请求不应该被管道化,因为
N > 的影响1
请求可能会产生与单个请求不同的结果。这意味着POST
请求不应该被管道化,但任何非幂等方法(除了POST
方法之外的任何请求)都可以安全地管道化。请参阅:
What this comes down to is Idempotence
Non-idempotent requests should not be pipelined, since the effects of
N > 1
requests may produce a different result than a single request would do. This means thePOST
requests should not be pipelined, but any non-idempotent method (just about any request other thanPOST
method) can safely be.See:
我认为管道 PUT 请求不会造成太大问题,但您不应该管道 POST 请求。 POST 请求可以更改服务器上对象的状态。如果在收到前一个 POST 请求的响应之前发送 POST 请求,则结果可能是不确定的。如果连接在会话期间终止,则尤其如此。
I don't think that pipelining PUT requests poses much of an issue, but you should not pipeline POST requests. POST requests can alter the state of objects on the server. If a POST request is sent before the response to a previous POST request is received, the results may be indeterminate. This is especially true if the connection is terminated during the session.