这是indexloc提供的服务,不要输入任何密码
Skip to content

Supporting the new document for HTTP/2 (RFC 9113) #128

@LPardue

Description

@LPardue

In June 2022, a whole set of new HTTP RFCs were published. Many of these were rewrites of existing specifications, alongside the new HTTP/3 and QPACK drafts. Part of this cluster of work was a rewrite of HTTP/2, published as RFC 9113, which obsoletes RFC 7540.

RFC 9113 is a rewrite that attempts to maintain a lot of what was already defined in HTTP/2. Changes are summarized in https://www.rfc-editor.org/rfc/rfc9113.html#appendix-B

Appendix B. Changes from RFC 7540

This revision includes the following substantive changes:

  • Use of TLS 1.3 was defined based on [RFC8740], which this document
    obsoletes.

  • The priority scheme defined in RFC 7540 is deprecated.
    Definitions for the format of the PRIORITY frame and the priority
    fields in the HEADERS frame have been retained, plus the rules
    governing when PRIORITY frames can be sent and received, but the
    semantics of these fields are only described in RFC 7540. The
    priority signaling scheme from RFC 7540 was not successful. Using
    the simpler signaling in [HTTP-PRIORITY] is recommended.

  • The HTTP/1.1 Upgrade mechanism is deprecated and no longer
    specified in this document. It was never widely deployed, with
    plaintext HTTP/2 users choosing to use the prior-knowledge
    implementation instead.

  • Validation for field names and values has been narrowed. The
    validation that is mandatory for intermediaries is precisely
    defined, and error reporting for requests has been amended to
    encourage sending 400-series status codes.

  • The ranges of codepoints for settings and frame types that were
    reserved for Experimental Use are now available for general use.

  • Connection-specific header fields -- which are prohibited -- are
    more precisely and comprehensively identified.

  • Host and ":authority" are no longer permitted to disagree.

  • Rules for sending Dynamic Table Size Update instructions after
    changes in settings have been clarified in Section 4.3.1.

Editorial changes are also included. In particular, changes to
terminology and document structure are in response to updates to core
HTTP semantics [HTTP]. Those documents now include some concepts
that were first defined in RFC 7540, such as the 421 status code or
connection coalescing.

I'd like to consider how h2spec and can be tweaked to accomodate both RFC 7540 and RFC 9113. I'm happy to volunteer some cycles but didn't want to start off in the wrong direction, hence opening this issue.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions