Skip to content

HTTP/3 support #5718

@vietj

Description

@vietj

Roadmap

5.1

  • configuration
  • implementation
    • outer context integration and testing
    • metrics
    • tracing
    • send file
    • network activity logging
    • alt-svc header
  • API
    • breaking changes
      • identify
      • decide
    • dev
      • options
      • connection close payload
    • request cancellation superseding request reset
  • Improve Netty Quic reset
  • go away strategies ?
  • documentation
  • ...

5.x

  • Compression
  • DNS HTTPS resource record
  • Connect UDP
  • push ?
    • client
    • server

Breaking changes

Implementing HTTP/3 implies a few potential breaking changes, the strategy to handle them will be on a case by case basis and attempt to minimize the amount of breaking changes to delay them until Vert.x 6 is implemented, here is a non exhaustive list:

  • stream id declares long type instead of int
  • settings
  • ...

Open concerns

Compression

There is no facility for payload compression and current one for HTTP/1 and HTTP/2 are not reusable.

Discovery

No support for HTTPS resource records in DNS resolver.

Shutdown / GoAway

  • H2: GoAway carries stream id + error code + debug data
  • H3: GoAway only carries stream id, but quic can close with an error code + reason data, error code seems similar but reason is not the same semantic than debug.

Reset semantic

  • H2: reset means immediate termination of a stream
  • H3: reset only applies to the stream outbound and means no more data will be set

Introduce stream cancellation that performs the most adapted operation according to the protocol:

  • H2 : reset with 0x8 (CANCEL) code
  • H3 : reset or abort reading with REQUEST_CANCELLED code

Contribution

bibi

Metadata

Metadata

Assignees

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions