HTTP Extension Framework Name Qin Zhao Id 102906

  • Slides: 15
Download presentation
HTTP Extension Framework Name: Qin Zhao Id: 102906

HTTP Extension Framework Name: Qin Zhao Id: 102906

Why is HTTP Extension Framework? l l This is designed to address the tension

Why is HTTP Extension Framework? l l 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.

How to? l Notational Conventions – – – This specification uses the same notational

How to? l 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 “absolute. URI” are to be interpreted Some key words “MUST”, “MUST NOT”, “REQUIRED”, “SHALL NOT”, “SHOULD NOT”, “RECOMMENDED”, “MAY”, and “OPTIONAL” are to be interpreted

How to? l l And the more generic term URI is used throughout the

How to? l l 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

How to? l This specification does not define any ramifications of applying an extension

How to? l 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

How to? l An extension is identified by an absolute, globally unique URI or

How to? l An extension is identified by an absolute, globally unique URI or a field-name. A fieldname MUST specify a header field uniquely defined in an IETF Standards Track. A URI can unambiguously be distinguished from a fieldname by the presence of a colon (": ")

About Header Field Prefixes l l The header-prefix is a dynamically generated string Header

About Header Field Prefixes l l 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

About Header Field Prefixes l l Agent MUST NOT reuse header-prefix values in the

About Header Field Prefixes l l 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

Two types of extension declaration strength l mandatory extension declaration – l It indicates

Two types of extension declaration strength l mandatory extension declaration – l 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

Two types of Extensions l End-to-End Extension – l End-to-end declarations MUST be transmitted

Two types of Extensions l End-to-End Extension – l 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

Publishing an Extension l l While the protocol extension definition should be published at

Publishing an Extension l l 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

Publishing an Extension l l The association between the extension identifier and the specification

Publishing an Extension l l 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

Where to use? l l Some party designs and specifies an extension; the party

Where to use? l l 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

Where to use? l The HTTP application which the extension declaration is intended for

Where to use? l 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.

Summary l l Describes a generic extension mechanism for HTTP, which is designed to

Summary l l 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