Closed marcstern closed 1 month ago
Is there a reason to send 4 such headers so large in a request?
This is typically an attack, and servers protect from such attacks by limiting the size of the headers.
In any case, you want to configure the server with HttpConfiguration.setRequestHeaderSize()
with a value larger than your headers, so say about 40 KiB (or 90 KiB, but really?).
The server will send this setting to the client, and the client will be allowed to send such large requests.
Yes, we have a very good reason to send these (proprietary) headers and the server accepts them. The problem is that we cannot test it with JMeter because the client lib refuses to send them.
The server will send this setting to the client
Do you mean that the library will allow larger headers it it previously receives some response header? Which one?
Do you mean that the library will allow larger headers it it previously receives some response header? Which one?
No, this is negotiated at the HTTP/2 level with a SETTINGS frame.
The configuration from HttpConfiguration.setRequestHeaderSize()
is copied into a SETTINGS frame at connection establishment, sent to the client, which receives it and configures the HPACK encoder to allow headers as large as the server is willing to accept.
Jetty version(s) 12.0.11
Jetty Environment Jmeter (client lib)
Java version/vendor
(use: java -version)
openjdk version "21.0.2" 2024-01-16 LTS OpenJDK 64-Bit Server VM Microsoft-8905927 (build 21.0.2+13-LTS, mixed mode, sharing)OS type/version Windows 11
Description I send, with Jmeter, in HTTP/2 + HTTPS 4 headers of 8 K each and I get the following exception
The same request in HTTP (h2c):
I filled an issue fro the Jmeter plugin, but they say thay cannot control anything in the jetty lib: https://github.com/Blazemeter/jmeter-http2-plugin/issues/42
Could there be a property to manage the allowed size? Thanks a lot
PS: The stack trace is from version 11, but I have the same problem with version 12