<div dir="ltr"><div>Hi,</div><div><br></div><div>
I think Firefox Developer Tools should not display the TE request header value as "Trailers" since this is not a valid value as per the specification, and it is actually sending "trailers" over the wire [1].</div><div><br></div><div>I have submitted a bug regarding this [2].<br></div><div><br></div><div>[1] : <a href="https://hg.mozilla.org/mozilla-central/file/5de53d489b7d5613710a40b2c64693dbab31e8ee/netwerk/protocol/http/Http2Compression.cpp#l1167">https://hg.mozilla.org/mozilla-central/file/5de53d489b7d5613710a40b2c64693dbab31e8ee/netwerk/protocol/http/Http2Compression.cpp#l1167</a></div><div>[2] : <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1711482">https://bugzilla.mozilla.org/show_bug.cgi?id=1711482</a></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sat, 15 May 2021 at 21:05, Jaikiran Pai <<a href="mailto:jai.forums2013@gmail.com">jai.forums2013@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><br>
On 15/05/21 5:32 pm, Jaikiran Pai wrote:<br>
><br>
> On 15/05/21 5:13 pm, Jaikiran Pai wrote:<br>
>> Hello Krzysztof,<br>
>><br>
>> On 15/05/21 1:07 am, Krzysztof K. wrote:<br>
>>> Hi,<br>
>>> I have an issue using http client communicating with servers that <br>
>>> most probably are on GCP (I see header: "via: 1.1 google").<br>
>>><br>
>>> I get "java.io.IOException: Received RST_STREAM: Protocol error".<br>
>>> ...<br>
>>><br>
>>> But I'm on JDK 16 (build 16+35-2229) and I get this error when <br>
>>> connecting to a website when I use the header "TE: Trailers" (needs <br>
>>> first letter capitalized).<br>
>>><br>
>>> When I remove this header everything works, if I switch to HTTP 1.1 <br>
>>> (with that header) it also works.<br>
>>><br>
>>> Here is a minimal reproducible example:<br>
>>><br>
>>> HttpClient.newBuilder()<br>
>>>   .build()<br>
>>>   .send(<br>
>>>     HttpRequest.newBuilder()<br>
>>>     .header("TE", "Trailers")<br>
>><br>
>> IMO, this is more of an application issue than the JDK. In HTTP/2 the <br>
>> TE header[1] is expected to only have the value "trailers" (case <br>
>> sensitive) as noted here[2]. If you change your code to use <br>
>> "trailers" instead of "Trailers" it works (as you seem to have <br>
>> noticed). As for why it works in Firefox or curl, I'm not sure - <br>
>> perhaps they have special handling of this specific header to lower <br>
>> case its value if it's "Trailers"?<br>
><br>
> A quick check of the curl source code[1] suggests that it does indeed <br>
> do special handling of this TE request param[2].<br>
<br>
I meant request header.<br>
<br>
-Jaikiran<br>
<br>
</blockquote></div><br clear="all"><br>-- <br><div dir="ltr" class="gmail_signature">Anirvan<br></div>