We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
The pingora-proxy examples don't support client-side HTTP pipelining.
Please include the following information about your environment:
Pingora version: e288bfe (built from source) Rust version: cargo 1.79.0 (ffa9cf99a 2024-06-03) Operating system version: Debian 12
gateway
printf 'GET / HTTP/1.1\r\nHost: one.one.one.one\r\n\r\n' \ | ncat --no-shutdown localhost 6191 \ | grep -oP 'HTTP/1.1 \d\d\d'
HTTP/1.1 200
(printf 'GET / HTTP/1.1\r\nHost: one.one.one.one\r\n\r\n'; sleep 1; printf 'GET / HTTP/1.1\r\nHost: one.one.one.one\r\n\r\n') \ | ncat --no-shutdown localhost 6191 \ | grep -oP 'HTTP/1.1 \d\d\d'
HTTP/1.1 200 HTTP/1.1 200
printf 'GET / HTTP/1.1\r\nHost: one.one.one.one\r\n\r\nGET / HTTP/1.1\r\nHost: one.one.one.one\r\n\r\n' \ | ncat --no-shutdown localhost 6191 \ | grep -oP 'HTTP/1.1 \d\d\d'
I expect to get 2 responses when sending 2 pipelined requests.
I only get 1 response.
The text was updated successfully, but these errors were encountered:
Note that http pipelining is not supported by major browsers. Some also believe that it does more harm than good.
Ref https://en.wikipedia.org/wiki/HTTP_pipelining https://portswigger.net/research/browser-powered-desync-attacks https://community.f5.com/kb/technicalarticles/http-pipelining-a-security-risk-without-real-performance-benefits/286621
Sorry, something went wrong.
Yep. For better or for worse, HTTP is filled with features that seem useless or confusing in hindsight. Some of my (least) favorites are
Here's a breakdown of how other HTTP reverse proxies handle pipelined requests:
In summary, request pipelining is supported in nearly all reverse proxies, but requests are always un-pipelined before forwarding.
johnhurt
No branches or pull requests
Describe the bug
The pingora-proxy examples don't support client-side HTTP pipelining.
Pingora info
Please include the following information about your environment:
Pingora version: e288bfe (built from source)
Rust version: cargo 1.79.0 (ffa9cf99a 2024-06-03)
Operating system version: Debian 12
Steps to reproduce
gateway
example.Expected results
I expect to get 2 responses when sending 2 pipelined requests.
Observed results
I only get 1 response.
The text was updated successfully, but these errors were encountered: