|
|
Re: Yadis section 6.2.5: msg#00153
web.openid.general
|
Subject: |
Re: Yadis section 6.2.5 |
Thanks for the comments.
In the current draft, which the three reviewers have, the note in 6.2.5
has been removed.
I'll put text in the Implementor's Guide based on these
comments.
>>> Remember everyone: it's a wiki. Text for the
Overview and Implementor's Guide are welcome at:
http://yadis.org/wiki/Main_Page#YADIS_Overview
Cordially, Joaquin
Drummond wrote:
+1 to Martin's clarification, i.e., it would be better to say that a
conformant implementation MUST accept both a GET with an Accept:
application/xrds+xml request-header and a GET without it, and then
specify
the response in each case.
Martin wrote:
Section 6.2.5 of the spec has the following note:
The response to the initial request MUST comply with
the HTTP
protocol; therefore, if the request is a GET and does
not include
an Accept: application/xrds+xml request-header, the
response MUST be
of type 1 or 2. This is REQUIRED because the Relying
Party MAY omit
the Accept and so might only look for the
X-YADIS-Location.
I was with this until the last sentence. My reading of this suggests
that all identity URLs must support the indirection case even if
they
support the content negotiation case. This seems a little crazy.
This
essentially gives identity URL maintainers two choices:
* Support just the indirection case.
* Support the indirection case and the content negotiation case.
Out of those, I'd probably pick the first one since it's easier to
only
support one case.
I think it's more appropriate to say that YADIS relying parties MUST
send application/xrds+xml in the Accept header with a suitable
quality
value. It's much better to place this "burden" in the relying
party
since most people will be using pre-rolled libraries for relying
parties
and there is no disadvantage to supporting the content negotiation
case.
------------------------------------------------
As for the rest of that note, the correct way to respond when you
have
no document that matches a type in the Accept header is with the
response code "406 Not Acceptable", so if there's going to be
language
in there about complying with the HTTP protocol there should also be
some words about this, presumably saying that when a 406 response is
recieved the relying party should still look for the
X-YADIS-Location
header and, if the Content-type is text/html, look for the meta
tag.
Note that Apache's content negotiation module will, in its default
configuration, respond with 406 Not Acceptable as per the spec, so
this
case is not unlikely to arise. Of course, in the case where Apache's
content negotation module is in play, there's unlikely to be an
X-YADIS-Location header.
|
|