Re: question: definition of "correct" in "URI Schemes and Web Protocols"

Sorry for the long delay in replying.  As I think you know, I was 
traveling for most of the early summer.  Anyway, the first point to make 
is that you are commenting on a draft that was never approved by the TAG 
and that met with some resistance when we discussed it.  I decided to put 
the work down for some time, though may pick it up again soon.  So, I 
don't want to get into defending all this too strongly at the moment. I'll 
be glad to try and explain what I meant at the time.

> Can you tell me how "faithfully" and "correct" are defined, and
> how anyone could tell if service was "incorrect"? 

Informally, I think so.  To the level of rigor I suspect you're looking 
for, probably not.  This is not try to say anything tricky.  If you are 
implementing HTTP, and in response to a GET you delete the resource, you 
are not implementing the GET operation "correctly".  If the resource is 
the text of the declaration of independence, and your server (for some 
bizarre reason) leaves out every 3rd word in the representation returned 
from an otherwise correctly implemented GET, then in some sense it isn't 
serving the resource "faithfully."

Let's say you do an HTTP GET with a Request-URI header of 
ftp://example.org/.  The above is trying to say:  first of all, you must 
implement the HTTP GET operation correctly (don't try to delete anything.) 
 You must access the correct resource (you should be able to demonstrate 
that what you're returning is indeed the information that would come back 
from an FTP retrieval from example.org), etc.

> Are you saying that the native protocol (the one mentioned in 
> the URI) sets a standard, and all other protocols need to agree with it?

URI schemes don't in general mention protocols.  The URI, if assigned at 
all, identifies a resource.  So, that is the "standard" that all 
interactions must respect.  In the particular case of URIs employing the 
http scheme, the association of the URI and the resource is in some cases 
grounded in the HTTP protocol, but that's the special case of http and 
similar schemes.  mailto, for example, seems less directly associated with 
a protocol.  It identifies an email address, not the protocol used to 
interact with that address. 

> Also, how do you tell whether a server is subject to these rules? 

Only with a degee of omniscience.  I'm not sure how an automated checker 
would discover that the New York Times had accidentally put the wrong 
content on its home page. The editor, on the other hand, would probably 
spot immediately that his/her intended content had not been served 
"faithfully".  Similarly, we don't have automated ways to spot all cases 
in which DNS cache pollution results in browsers being directed to bogus 
sites, but that properly runs afoul in principle of the admonition that 
the protocols be implemented "correctly" and "faithfully".

> Could there be protocols that serve "incorrect" versions (e.g. from 
> the wayback machine) that are correct simply because the protocols 
> are not meant to be subject to these rules?

The October 22, 1996 version of the IBM home page has its own URI [1] at 
the Wayback machine.  That's a separate resource from [2], which is the 
"always current" IBM home page.  If course, there can be protocols that do 
most anything, but I don't see anything tricky about this example.  The 
Wayback machine correctly implements GET on [1].  I'm too lazy to do all 
the fooling it would take to try, but I suspect that if you did an HTTP 
connection to the Wayback machine and gave it a Request-URI of [2] it 
would correctly give a 404.

Noah

[1] http://web.archive.org/web/19961022175210/http://www.ibm.com/
[2] http://www.ibm.com/



Noah

--------------------------------------
Noah Mendelsohn 
IBM Corporation
One Rogers Street
Cambridge, MA 02142
1-617-693-4036
--------------------------------------








Jonathan Rees <jar@creativecommons.org>
06/13/2008 09:14 AM
 
        To:     noah_mendelsohn@us.ibm.com
        cc:     "www-tag@w3.org WG" <www-tag@w3.org>
        Subject:        question: definition of "correct" in "URI Schemes 
and Web Protocols"


I had a question or two about the following passage in [1]:

"A server MUST serve resources faithfully. Regardless of the protocol 
used, the server is responsible for ensuring that the correct 
resource is accessed, that operations are correctly implemented 
according to the specifications for the protocol, and thus that the 
correct resource state is either retrieved or updated."

Can you tell me how "faithfully" and "correct" are defined, and how 
anyone could tell if service was "incorrect"?  Are you saying that 
the native protocol (the one mentioned in the URI) sets a standard, 
and all other protocols need to agree with it?

Also, how do you tell whether a server is subject to these rules? 
Could there be protocols that serve "incorrect" versions (e.g. from 
the wayback machine) that are correct simply because the protocols 
are not meant to be subject to these rules? If so, how can you 
distinguish the servers/protocols to which the rules pertain from 
those to which they don't?

Thanks
Jonathan

[1] http://www.w3.org/2001/tag/doc/SchemeProtocols.html

Received on Wednesday, 30 July 2008 21:45:07 UTC