Avatar for the Kludex user
Kludex
uvicorn
BlogDocsChangelog

Consume duplicate forwarding headers in ProxyHeadersMiddleware

#2971Merged
Comparing
combine-duplicate-forwarded-headers
(
e3dc7f4
) with
main
(
630f4ac
)
CodSpeed Performance Gauge
0%
Untouched
24

Benchmarks

24 total
test_bench_simple_get[httptools]
tests/benchmarks/test_http.py
CodSpeed Performance Gauge
+1%
878.5 µs871.5 µs
test_bench_chunked_response[httptools]
tests/benchmarks/test_http.py
CodSpeed Performance Gauge
0%
735.3 µs731.9 µs
test_bench_keepalive_reuse[httptools]
tests/benchmarks/test_http.py
CodSpeed Performance Gauge
0%
791 µs787.3 µs
test_bench_pipelined_requests[httptools]
tests/benchmarks/test_http.py
CodSpeed Performance Gauge
0%
846.1 µs842.8 µs
test_bench_connection_close[httptools]
tests/benchmarks/test_http.py
CodSpeed Performance Gauge
0%
736.5 µs733.7 µs
test_bench_http10[httptools]
tests/benchmarks/test_http.py
CodSpeed Performance Gauge
0%
730.5 µs727.7 µs
test_bench_post_body_receive[h11]
tests/benchmarks/test_http.py
CodSpeed Performance Gauge
0%
976.5 µs972.9 µs
test_bench_large_post[httptools]
tests/benchmarks/test_http.py
CodSpeed Performance Gauge
0%
1.1 ms1.1 ms
test_bench_chunked_response[h11]
tests/benchmarks/test_http.py
CodSpeed Performance Gauge
0%
950.8 µs947.8 µs
test_bench_post_body_receive[httptools]
tests/benchmarks/test_http.py
CodSpeed Performance Gauge
0%
741.4 µs739.3 µs
test_bench_ws_handshake[wsproto]
tests/benchmarks/test_ws.py
CodSpeed Performance Gauge
0%
1.2 ms1.2 ms
test_bench_connection_close[h11]
tests/benchmarks/test_http.py
CodSpeed Performance Gauge
0%
980.1 µs978.5 µs
test_bench_pipelined_requests[h11]
tests/benchmarks/test_http.py
CodSpeed Performance Gauge
0%
1.4 ms1.4 ms
test_bench_http10[h11]
tests/benchmarks/test_http.py
CodSpeed Performance Gauge
0%
962.2 µs961 µs
test_bench_simple_get[h11]
tests/benchmarks/test_http.py
CodSpeed Performance Gauge
0%
1 ms1 ms
test_bench_simple_post[httptools]
tests/benchmarks/test_http.py
CodSpeed Performance Gauge
0%
746.9 µs746.2 µs
test_bench_fragmented_body[h11]
tests/benchmarks/test_http.py
CodSpeed Performance Gauge
0%
10.4 ms10.4 ms
test_bench_ws_send_text[websockets-sansio]
tests/benchmarks/test_ws.py
CodSpeed Performance Gauge
0%
1.2 ms1.2 ms
test_bench_simple_post[h11]
tests/benchmarks/test_http.py
CodSpeed Performance Gauge
0%
983.6 µs983.3 µs
test_bench_large_post[h11]
tests/benchmarks/test_http.py
CodSpeed Performance Gauge
0%
1.5 ms1.5 ms
test_bench_ws_send_text[wsproto]
tests/benchmarks/test_ws.py
CodSpeed Performance Gauge
0%
1.2 ms1.2 ms
test_bench_fragmented_body[httptools]
tests/benchmarks/test_http.py
CodSpeed Performance Gauge
0%
2.1 ms2.1 ms
test_bench_keepalive_reuse[h11]
tests/benchmarks/test_http.py
CodSpeed Performance Gauge
0%
1.2 ms1.2 ms
test_bench_ws_handshake[websockets-sansio]
tests/benchmarks/test_ws.py
CodSpeed Performance Gauge
0%
1.2 ms1.2 ms

Commits

Click on a commit to change the comparison range
Base
main
630f4ac
+0.61%
Combine repeated forwarding headers in ProxyHeadersMiddleware
b6f10f6
10 hours ago
by Kludex
-0.72%
Fold repeated-headers note into the proxy headers intro
f65969e
10 hours ago
by Kludex
+0.1%
Drop redundant comments from proxy header tests
13bd2ee
10 hours ago
by Kludex
-0.07%
Use rightmost X-Forwarded-Proto to reject client-spoofed scheme
91f7334
10 hours ago
by Kludex
+0.12%
Read rightmost X-Forwarded-Proto without rebuilding the joined string
47c5f9e
10 hours ago
by Kludex
+0.15%
Treat X-Forwarded-Proto as an atomic token, not a comma list
9023153
10 hours ago
by Kludex
-0.11%
Shorten X-Forwarded-Proto comment
c5b3619
10 hours ago
by Kludex
+0.06%
Correct overclaim in X-Forwarded-Proto comment
8110b71
10 hours ago
by Kludex
+0.48%
Track last X-Forwarded-Proto field directly instead of a list
82c1f83
10 hours ago
by Kludex
-0.66%
Handle comma-separated X-Forwarded-Proto when a proxy appends to it
6714f1e
10 hours ago
by Kludex
-0.04%
Cover proto upgrade-direction and whitespace/empty edge cases
b58c8c0
9 hours ago
by Kludex
+0.33%
Drop needless join when reading rightmost X-Forwarded-Proto
f45a4d1
9 hours ago
by Kludex
-0.05%
Revert comma-splitting on X-Forwarded-Proto to match pre-#2944 behavior
721ba7a
9 hours ago
by Kludex
+0.08%
Track last X-Forwarded-Proto field directly instead of a list
ec87bd5
9 hours ago
by Kludex
-0.21%
Drop X-Forwarded-Proto comment
fb39852
9 hours ago
by Kludex
-0.17%
Correct docs on per-header repeated-field handling
e6b2729
8 hours ago
by Kludex
-0.12%
Move repeated-field note out of the trust-model intro
62d141b
8 hours ago
by Kludex
+0.39%
Merge branch 'main' into combine-duplicate-forwarded-headers
d24c3bf
7 hours ago
by Kludex
+0.04%
Merge branch 'main' into combine-duplicate-forwarded-headers
e3dc7f4
3 hours ago
by Kludex
© 2026 CodSpeed Technology
Home Terms Privacy Docs