Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Simplify SETTINGS payload #1807

Merged
merged 3 commits into from Oct 1, 2018
Merged

Simplify SETTINGS payload #1807

merged 3 commits into from Oct 1, 2018

Conversation

MikeBishop
Copy link
Contributor

Fixes #1556 by making all setting values varints and removing length prefixes. This has two ramifications, which are probably livable:

  • An extension which needs a structured configuration message needs to define an extra frame/stream type to carry that message.
  • An extension which used the full 32-bit space in HTTP/2 will spill over to a 64-bit varint, because in four bytes we only carry 30 bits of payload.

@MikeBishop MikeBishop added design An issue that affects the design of the protocol; resolution requires consensus. -http labels Sep 27, 2018
long) rather than fixed-length 32-bit fields. This will often produce a shorter
encoding, but will produce a longer encoding for settings which use the full
32-bit space. Settings ported from HTTP/2 might choose to redefine the format
of their settings to avoid using the 62-bit encoding.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not sure I understand the purpose of this additional text? You lose 2 bits on 32 bit fields, but do we really expect that will require changes on anyone's part?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Secondary Certs currently stuffs an exporter in the setting value (to confirm both peers are on the same TLS connection with no MitM), and would overflow to an eight-byte field. It doesn't require changes, but an HQ port would either take advantage of the entire eight bytes or trim two bits off to still fit in four bytes. Hence, "might choose."

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In that case, how about starting the paragraph with 'Setting values are ...... rather than fixed length 32-bit fields as in HTTP/2." Currently you mention HTTP/QUIC in the HTTP/QUIC draft, and don't reference the thing you're comparing against(HTTP/2).

@MikeBishop MikeBishop merged commit a56d442 into master Oct 1, 2018
@mnot mnot deleted the http/simple_settings branch October 27, 2018 00:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
-http design An issue that affects the design of the protocol; resolution requires consensus.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

HTTP SETTINGS: define setting content encoding
2 participants