Note
- This question is about requests with the
Transfer-Encoding
header, not responses - Yes, requests can use the
Transfer-Encoding
header - One could implement a web browser that does anything, but for the purposes of this question, please limit the definition of "web browser" to Google Chrome, Mozilla Firefox, Microsoft Edge, and Apple Safari.
Background
- For
XMLHttpRequest
,Transfer-Encoding
is a forbidden header name - For
fetch
,Transfer-Encoding
is a forbidden header name - For links or forms in HTML, there is no explicit reference to
Transfer-Encoding
in [the HTML standard] (https://html.spec.whatwg.org/) - It's not an authoritative source, but the PortSwigger article on request smuggling states that "Browsers do not normally use chunked encoding in requests, and it is normally seen only in server responses."
- The only reference I've been able to find that might use
Transfer-Encoding
is Chrome-specific, is behind an experimental flag, and requires a second, non-standard flag to enable it for HTTP/1.1
Question
- Is there a case (or cases) where a web browser will make a request with the
Transfer-Encoding
header?