http extension framework name: qin zhao id: 102906

15
HTTP Extension Framework Name: Qin Zhao Id: 102906

Upload: reynard-poole

Post on 31-Dec-2015

215 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: HTTP Extension Framework Name: Qin Zhao Id: 102906

HTTP Extension Framework

Name: Qin Zhao

Id: 102906

Page 2: HTTP Extension Framework Name: Qin Zhao Id: 102906

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

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

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

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

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

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

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

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

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

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

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

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

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

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