summaryrefslogtreecommitdiffhomepage
path: root/src/misc/ngx_cpp_test_module.cpp
diff options
context:
space:
mode:
authorSergey Kandaurov <pluknet@nginx.com>2025-07-23 14:54:07 +0400
committerSergey Kandaurov <s.kandaurov@f5.com>2025-12-23 22:40:33 +0400
commit62e757ec60b58b915d71c1d0630c8a6384a62287 (patch)
tree37a86e8f8e3adc0b4e95197a37c6cdb613aae376 /src/misc/ngx_cpp_test_module.cpp
parent86dacb7ebe16cdac04c8b5317d4c91b7267b1e75 (diff)
downloadnginx-62e757ec60b58b915d71c1d0630c8a6384a62287.tar.gz
nginx-62e757ec60b58b915d71c1d0630c8a6384a62287.tar.bz2
HTTP/2: fixed handling of the ":authority" header.
Previously, it misused the Host header processing resulting in 400 (Bad Request) errors for a valid request that contains both ":authority" and Host headers with the same value, treating it after 37984f0be as if client sent more than one Host header. Such an overly strict handling violates RFC 9113. The fix is to process ":authority" as a distinct header, similarly to processing an authority component in the HTTP/1.x request line. This allows to disambiguate and compare Host and ":authority" values after all headers were processed. With this change, the ngx_http_process_request_header() function can no longer be used here, certain parts were inlined similar to the HTTP/3 module. To provide compatibility for misconfigurations that use $http_host to return the value of the ":authority" header, the Host header, if missing, is now reconstructed from ":authority".
Diffstat (limited to 'src/misc/ngx_cpp_test_module.cpp')
0 files changed, 0 insertions, 0 deletions