RFC 2295 Transparent Content Negotiation March 1998
8.2 Accept-Features
The Accept-Features request header can be used by a user agent to
give information about the presence or absence of certain features in
the feature set of the current request. Servers can use this
information when running a remote variant selection algorithm.
Note: the name `Accept-Features' for this header was chosen
because of symmetry considerations with other Accept- headers,
even though the Accept-Features header will generally not contain
an exhaustive list of features which are somehow `accepted'. A
more accurate name of this header would have been `Feature-Set-
Info'.
Accept-Features = "Accept-Features" ":"
#( feature-expr *( ";" feature-extension ) )
feature-expr = [ "!" ] ftag
| ftag ( "=" | "!=" ) tag-value
| ftag "=" "{" tag-value "}"
| "*"
feature-extension = token [ "=" ( token | quoted-string ) ]
No feature extensions are defined in this specification. An example
is:
Accept-Features: blex, !blebber, colordepth={5}, !screenwidth,
paper = A4, paper!="A2", x-version=104, *
The different feature expressions have the following meaning:
ftag ftag is present
!ftag ftag is absent
ftag=V ftag is present with the value V
ftag!=V ftag is present, but not with the value V
ftag={V} ftag is present with the value V, and not with any
other values
* the expressions in this header do not fully describe
the feature set: feature tags not mentioned in this
header may also be present, and, except for the case
ftag={V}, tags may be present with more values than
mentioned.
RFC 2295 Transparent Content Negotiation March 1998
Absence of the Accept-Features header in a request is equivalent to
the inclusion of
Accept-Features: *
By using the Accept-Features header, a remote variant selection
algorithm can sometimes determine the truth value of a feature
predicate on behalf of the user agent. For example, with the header
Accept-Features: blex, !blebber, colordepth={5}, !screenwidth,
paper = A4, paper!="A2", x-version=104, *
the algorithm can determine that the following predicates are true:
blex, colordepth=[4-], colordepth!=6, colordepth, !screenwidth,
paper=A4, colordepth=[4-6]
and that the following predicates are false:
!blex, blebber, colordepth=6, colordepth=foo, !colordepth,
screenwidth, screenwidth=640, screenwidth!=640,
but the truth value of the following predicates cannot be
determined:
UA-media=stationary, UA-media!=screen, paper!=a0,
x-version=[100-300], x-version=[200-300], x-version=99,
UA-media=screen, paper=A0, paper=a4, x-version=[100-199], wuxta
8.3 Alternates
The Alternates response header is used to convey the list of variants
bound to a negotiable resource. This list can also include
directives for any content negotiation process. If a response from a
transparently negotiable resource includes an Alternates header, this
header MUST contain the complete variant list bound to the negotiable
resource. Responses from resources which do not support transparent
content negotiation MAY also use Alternates headers.
=15= |