This will be accepted by dnsdist, no warning sent, but it will break HTTP/2 clients (curl reports "'HTTP/2 stream 0 was not closed cleanly: PROTOCOL_ERROR (err 1)'")
Headers must be in lower case.
Two solutions: document this limitation or, better, lowercase headers automatically
Related
This bug in the ACME client dehydrated is another case of programmers forgetting that headers must be in lower case. dehydrated-io/dehydrated#559
The text was updated successfully, but these errors were encountered:
rfc7540 indeed states that header field names should be converted to lowercase before encoding 1. I wonder if libh2o should rectify that for us, but let's fix it in dnsdist for now.
bortzmeyer commentedSep 29, 2019
Short description
If you put custom headers in upper-case or mixed case, HTTP/2 clients fail. This does not seem documented.
Usecase
Trying to use customResponseHeaders in the server but the problem is probably the same with the extra headers of the internal webserver.
Description
addDOHLocal("[::]:443", "/etc/dnsdist/server-doh.pem", "/etc/dnsdist/server-doh.key", "/", {customResponseHeaders={["Link"]="https://www.bortzmeyer.org/doh-bortzmeyer-fr-policy.html rel="\service-meta"; type="text/html""}})
This will be accepted by dnsdist, no warning sent, but it will break HTTP/2 clients (curl reports "'HTTP/2 stream 0 was not closed cleanly: PROTOCOL_ERROR (err 1)'")
Headers must be in lower case.
Two solutions: document this limitation or, better, lowercase headers automatically
Related
This bug in the ACME client dehydrated is another case of programmers forgetting that headers must be in lower case. dehydrated-io/dehydrated#559
The text was updated successfully, but these errors were encountered: