http extension framework name: qin zhao id: 102906
TRANSCRIPT
![Page 1: HTTP Extension Framework Name: Qin Zhao Id: 102906](https://reader035.vdocuments.net/reader035/viewer/2022072015/56649eb55503460f94bbd9d3/html5/thumbnails/1.jpg)
HTTP Extension Framework
Name: Qin Zhao
Id: 102906
![Page 2: HTTP Extension Framework Name: Qin Zhao Id: 102906](https://reader035.vdocuments.net/reader035/viewer/2022072015/56649eb55503460f94bbd9d3/html5/thumbnails/2.jpg)
Why is HTTP Extension Framework?
This is designed to address the tension between private agreement and public specification.
It is designed to accommodate dynamic extension of HTTP clients and servers by software components.
![Page 3: HTTP Extension Framework Name: Qin Zhao Id: 102906](https://reader035.vdocuments.net/reader035/viewer/2022072015/56649eb55503460f94bbd9d3/html5/thumbnails/3.jpg)
How to?
Notational Conventions– This specification uses the same notational
conventions and basic parsing constructs as usual– Some particular BNF constructs like “token”, “quoted-
string”, “Request-line”, “field-name”, and “absoluteURI” are to be interpreted
– Some key words “MUST”, “MUST NOT”, “REQUIRED”, “SHALL”, “SHALL NOT”, “SHOULD”, “SHOULD NOT”, “RECOMMENDED”, “MAY”, and “OPTIONAL” are to be interpreted
![Page 4: HTTP Extension Framework Name: Qin Zhao Id: 102906](https://reader035.vdocuments.net/reader035/viewer/2022072015/56649eb55503460f94bbd9d3/html5/thumbnails/4.jpg)
How to?
And the more generic term URI is used throughout the specification
An extension declaration can be used to indicate that an extension has been applied to a message and possibly to reserve a part of the header namespace identified by a header field prefix
![Page 5: HTTP Extension Framework Name: Qin Zhao Id: 102906](https://reader035.vdocuments.net/reader035/viewer/2022072015/56649eb55503460f94bbd9d3/html5/thumbnails/5.jpg)
How to?
This specification does not define any ramifications of applying an extension to a message nor whether two extensions can or cannot logically coexist within the same message
![Page 6: HTTP Extension Framework Name: Qin Zhao Id: 102906](https://reader035.vdocuments.net/reader035/viewer/2022072015/56649eb55503460f94bbd9d3/html5/thumbnails/6.jpg)
How to?
An extension is identified by an absolute, globally unique URI or a field-name. A field-name MUST specify a header field uniquely defined in an IETF Standards Track. A URI can unambiguously be distinguished from a field-name by the presence of a colon (":")
![Page 7: HTTP Extension Framework Name: Qin Zhao Id: 102906](https://reader035.vdocuments.net/reader035/viewer/2022072015/56649eb55503460f94bbd9d3/html5/thumbnails/7.jpg)
About Header Field Prefixes
The header-prefix is a dynamically generated string
Header field prefixes allow an extension declaration to dynamically reserve subspace of the header space in a protocol message in order to prevent header field name clashes and to allow multiple declarations using the same extension to be applied to the same message without conflicting
![Page 8: HTTP Extension Framework Name: Qin Zhao Id: 102906](https://reader035.vdocuments.net/reader035/viewer/2022072015/56649eb55503460f94bbd9d3/html5/thumbnails/8.jpg)
About Header Field Prefixes
Agent MUST NOT reuse header-prefix values in the same message unless explicitly allowed by the extension
Clients should be as consistent as possible when generating header-prefix values as a function of the request extension declaration
![Page 9: HTTP Extension Framework Name: Qin Zhao Id: 102906](https://reader035.vdocuments.net/reader035/viewer/2022072015/56649eb55503460f94bbd9d3/html5/thumbnails/9.jpg)
Two types of extension declaration strength
mandatory extension declaration– It indicates that the ultimate recipient MUST consult
and adhere to the rules given by the extension when processing the message or reporting the error
optional extension declaration– It indicates that the ultimate recipient May consult
and adhere to the rules given by the extension when processing the message, or ignore the extension declaration completely
![Page 10: HTTP Extension Framework Name: Qin Zhao Id: 102906](https://reader035.vdocuments.net/reader035/viewer/2022072015/56649eb55503460f94bbd9d3/html5/thumbnails/10.jpg)
Two types of Extensions
End-to-End Extension– End-to-end declarations MUST be transmitted to the
ultimate recipient of the declaration
Hop-by-Hop Extension– These declarations are meaningful only for a single
HTTP connection
![Page 11: HTTP Extension Framework Name: Qin Zhao Id: 102906](https://reader035.vdocuments.net/reader035/viewer/2022072015/56649eb55503460f94bbd9d3/html5/thumbnails/11.jpg)
Publishing an Extension
While the protocol extension definition should be published at the extension identifier, the only absolute requirement is that extension identifiers MUST be globally unique identifiers, and that distinct names be used for distinct semantics
An application MUST NOT claim conformance with and extension that it does not recognize
![Page 12: HTTP Extension Framework Name: Qin Zhao Id: 102906](https://reader035.vdocuments.net/reader035/viewer/2022072015/56649eb55503460f94bbd9d3/html5/thumbnails/12.jpg)
Publishing an Extension
The association between the extension identifier and the specification might be made by distributing a specification, which references the extension identifier
It is strongly recommended that the integrity and persistence of the extension identifier be maintained and kept unquestioned throughout the lifetime of the extension
![Page 13: HTTP Extension Framework Name: Qin Zhao Id: 102906](https://reader035.vdocuments.net/reader035/viewer/2022072015/56649eb55503460f94bbd9d3/html5/thumbnails/13.jpg)
Where to use?
Some party designs and specifies an extension; the party assigns the extension a globally unique URI, and makes one or more representaions of the extension available at that address
An HTTP client or server that implements this extension mechanism(it is called an agent) declares the use of the extension by referencing its URI in an extension declaration in an HTTP message
![Page 14: HTTP Extension Framework Name: Qin Zhao Id: 102906](https://reader035.vdocuments.net/reader035/viewer/2022072015/56649eb55503460f94bbd9d3/html5/thumbnails/14.jpg)
Where to use?
The HTTP application which the extension declaration is intended for (it is called the ultimate recipient) can deduce how to properly interpret the extended message based on the extension declaration.
![Page 15: HTTP Extension Framework Name: Qin Zhao Id: 102906](https://reader035.vdocuments.net/reader035/viewer/2022072015/56649eb55503460f94bbd9d3/html5/thumbnails/15.jpg)
Summary
Describes a generic extension mechanism for HTTP, which is designed to address the tension between private agreement and public specification and to accommodate extension of applications using HTTP clients, servers and proxies
So there is a more general concern about whether this document actually represents community consensus regarding the evolution of HTTP