OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

xri message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]


Subject: Outcome of discussion on _xrd_r and Accept Header


On the special TC call on proxy resolution interface yesterday, Drummond
explained an issue with the use of the_xrd_r (Return) input parameter.
Without this parameter, the _xrd_m (MediaType) parameter was "overloaded" to
represent both the content type requested from the proxy resolver AND the
MediaType of the requested SEP. This created problems in the ED 06 spec. 

Adding the _xrd_r parameter solves this problem. However it introduces a new
(smaller) one: since MediaType can also be sent to a proxy resolver via the
HTTP Accept header, we need to decide which parameter (_xrd_m or _xrd_r) is
represented by this Accept header when it is included.

The problem with simply stating that the Accept header content type should
always represent the _xrd_m value is that in this case it would ALWAYS
result in SEP selection by the proxy resolver (because _xrd_m represents the
media type you want from the final target resource, not from the proxy
resolver response). However this is going to seem very unintuitive to XRI
developers, who are naturally going to expect that the Accept header you
send to a proxy resolver represents the type of response you want back from
the proxy resolver. 

For example, if they just wanted a proxy resolver to do authority resolution
and get back an XRDS document, they'd expect to just set the Accept header
content type to "application/xrds+xml". Even more importantly, the YADIS
(www.yadis.org) development community has already baked this into the YADIS
spec that this is the Accept header you MUST use if you want an XRDS
document back from an "identity server".

However the other horn of the dilemma is that we can't just flatly map the
Accept header content type to the _xrd_r value because that would screw up
all the dumb browsers out there trying to resolve HXRIs. Those browsers,
having no concept that they are going to talk to an XRI proxy resolver, will
specify obvious Accept header content types like "text/html". But in this
case they are really the content type of the final target resource, not of
the proxy resolver response.

Gabe had the insight that led to the proposed solution, which is the
following rule set:

1) If a resolution request sent to a proxy resolver includes a content type
in the HTTP Accept header, and this content type matches one of the explicit
proxy resolver content types published in the XRI resolution specification,
then it represents the implicit value of the _xrd_r parameter.

2) If the Accept header content type value does NOT match one of the
explicit proxy resolver content types published in the XRI resolution
specification, then it represents the explicit value of the _xrd_m
parameter.

3) If the Accept header content type is null, then this represents the
implicit value of BOTH the _xrd_r and _xrd_m parameters (i.e., both are
assumed to be null).

4) In ALL cases above, if the value either the _xrd_r or _xrd_m parameter is
supplied explicitly in the QXRI, the explicit value OVERRIDES the implicit
value.

******
What this means in the end is that for the four media types specified for
proxy resolution...

application/xrds+xml
application/xrds-saml+xml
application/xrd+xml
text/uri-list

...if an application wants to specify one of these is the value for the
_xrd_m parameter, i.e., the value it wants to use for SEP SELECTION, then it
MUST specify that parameter explicitly in the QXRI. Otherwise the proxy
resolver will interpret it as the implicit value of the _xrd_r parameter.

(Usual finishing rejoinder that if you disagree with any of this, POST NOW
or hold your peace (and your piece! ;-))

=Drummond 





[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]