Hi Marco,

As Michael has already confirmed, BaseX 10 and later is based on the new
Java HTTP Client, which returns all response header field names in
lowercase as required by HTTP/2 [1].

Best,
Christian

[1] https://www.rfc-editor.org/rfc/rfc7540#section-8.1.2




On Thu, Jun 27, 2024 at 3:29 PM Michael Seiferle <m...@basex.org> wrote:

> Hi Marco,
>
>
>
> I am not 100% sure, whether BaseX or the Java HTTP Client actually does
> the conversion, but it might be due to the fact, that we use the new Java
> HTTP Client since BaseX 10.
>
>
>
> By default, it uses HTTP/2 where headers must be lower-case while in
> versions before HTTP/2 the headers are defined to be case-insensitive.
>
> Hence, my guess is:
>
> The conversion happens because it must in HTTP/2 while it’s valid in
> HTTP/1/1.1.
>
> I hope this doesn’t cause too much trouble on your end.
>
>
>
> Best
>
> Michael
>
>
>
>
>
>
>
>
>
>
>
>
>
> *Von: *BaseX-Talk <basex-talk-boun...@mailman.uni-konstanz.de> im Auftrag
> von Marco Lettere <m.lett...@gmail.com>
> *Datum: *Mittwoch, 26. Juni 2024 um 19:14
> *An: *basex-talk@mailman.uni-konstanz.de <
> basex-talk@mailman.uni-konstanz.de>
> *Betreff: *[basex-talk] HTTP headers are all lowercase in responses
>
> Dear all,
>
> just by trying the example of the documentation [1] (at least since
> 10.4+)  you should be able to verify that the response contains all
> headers with lower-case names.
>
> I think a client should not take the freedom to alter HTTP responses if
> this is not strictly required. What is the concrete reason for this
> behaviour?
>
> hHanks,
>
> Marco.
>
> [1] http:send-request(<http:request method='get'
> href='http://www.google.com' timeout='10'/>)
>

Reply via email to