Skip to content

Optimize Http 2 header validation #5072

@franz1981

Description

@franz1981

While inspecting few benchmark this behaviour popup in the HTTP 2 server response handling:
image

It shows that we do perform few validations around header names, which could be improved or merged (if proves to be beneficial, in the common case things are right).

The existing process work like this;

for header names:

for header values:

Additionally, related header names, the RFC report at https://datatracker.ietf.org/doc/html/rfc7540#section-8.1.2

Just as in HTTP/1.x, header field names are strings of ASCII
characters that are compared in a case-insensitive fashion. However,
header field names MUST be converted to lowercase prior to their
encoding in HTTP/2. A request or response containing uppercase
header field names MUST be treated as malformed

which means that the vertx validation against control character is just too much, and could be dropped.

Re header values, instead, it seems that the validation should follow https://datatracker.ietf.org/doc/html/rfc7230#section-3.2 (which I have yet to interpret).

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions