Skip to content

Allow headers size extend to maxRequestHeadersSize in http client #12436

@shaoxt

Description

@shaoxt

Jetty version(s)
Jetty Version 10-12

Enhancement Description

In HttpSenderOverHTTP and HttpClient, there is a "headerBuffer" which allocated by the "httpclient.getRequestBufferSize".
If the buffer overflowed, there will be an IllegalArgumentException("Request header too large"). To support higher headers, for examples 32K or 64K, has to set the request buffer size higher accordingly right now.

But 99% use cases, we don't need such high headerBuffer. Also when backend connections stuck, these high buffer will bump up the memory consumption significantly.

The enhancement will be have a new limit for headers, it will be "httpclient.maxRequestHeadersSize". The headerBuffer still starts will the "httpclient.getRequestBufferSize". While the headerBuffer runs into overflow state. The headerBuffer will be allocated as "httpclient.maxRequestHeadersSize", and continue the flow.

In this case, 99% use cases can be covered by smaller header buffer, and 1% cases run into buffer extension.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions