I've heard PUT and POST requests should not be pipelined. Why ?
Pipelining is the process to send successive requests, over the same persistent connection, without waiting for the answer. This avoids latency of the connection.
Pipelining was added to HTTP/1.1 as a means of improving the performance of persistent connections in common cases. While it is deployed in some limited circumstances, it is not widely used by clients on the open Internet.
HTTP pipelining is a feature of HTTP/1.1 which allows multiple HTTP requests to be sent over a single TCP connection without waiting for the corresponding responses.
"HTTP pipelining is a technique in which multiple HTTP requests are sent on a single TCP connection without waiting for the corresponding responses.[1]" "the server must send its responses in the same order that the requests were received" https://devcentral.f5.com/wiki/irules.http_response.ashx.
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 the POST
requests should not be pipelined, but any non-idempotent method (just about any request other than POST
method) can safely be.
See:
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With