- From: Rhys Lewis <rhys@volantis.com>
- Date: Wed, 26 Sep 2007 00:43:37 -0600 (MDT)
- To: "'Pat Hayes'" <phayes@ihmc.us>, "'Booth, David \(HP Software - Boston\)'" <dbooth@hp.com>
- Cc: "'Technical Architecture Group WG'" <www-tag@w3.org>
Hello everyone, I'd like to pick at the question of HTTP endpoints a bit, as this seems to be related to something that came up at last week's TAG F2F. I've taken the liberty of starting a new thread. The discussion came up because of a difference in the way the term 'resource' is defined in the terminology section of the HTTP specification [1] and the way it's defined in the web architecture [2]. I'll use http:resource for the former and webarch:resource for the latter in what follows. With apologies to the authors of those specifications, roughly, an http:resource is a "A network data object or service that can be identified by a URI" and a webarch:resource is "whatever might be identified by a URI". Just looking at the mechanics for a moment, if I want to create an http URI and use it in the Web I need to have an http:resource associated with it. If I don't have one, I'm going to get a 404 response code at best (there are lots of others that I might get, depending on what other parts of the Web infrastructure I've not established). Whether I want to serve representations directly from this resource or whether I want to return a 303, in the manner of the httpRange-14 finding, I still need an http:resource for the URI. I think there is a real distinction here between URIs that result in 404s and those that result in 200 and 303 (I'll ignore the other possible responses for now). To get a response of 200 or 303 I need to have done something more than simply deploy a server. I have to have done something specific to allow such a response to be returned for that particular URI. I've heard this described in various ways, including 'deploying the URI' or 'putting it on the Web'. There are many ways to achieve this behaviour, and often they are implementation and server specific. Nevertheless, the distinction is that for 200 and 303 I need to do something specific for the URI, whereas for 404 I don't. For an information resource, I think the webarch:resource and the http:resource are the same thing. What is denoted is what responds, with a 200 and a representation, when poked. For a non-information resource, the http:resource and the webarch:resource are distinct. What responds is not what is denoted. However, there is a well defined relationship between the two. Where redirection is employed, the entity that responds with the 303 is the http:resource associated with the URI of the non-information resource. Where secondary resources are employed, the entity that responds is the http:resource associated with the racine of the non-information resource. Regardless of the mechanism, in both cases, there must be an http:resource that is specifically assocated with the URI and that provides a response when poked. So that's a very round about way of saying that I don't view HTTP endpoints, as portrayed in the discussion below, as just things that return 200. I think we're talking about http:resources here and there is a set of response codes that such endpoints can return and which can be used to good effect. I do, however, think that there is a distinction between those URIs for which specific http:resources have been created and those for which they have not. And, of course, I'm only considering http URIs in all of this. Best wishes Rhys [1] http://www.w3.org/Protocols/rfc2616/rfc2616.html [2] http://www.w3.org/TR/webarch/ > -----Original Message----- > From: www-tag-request@w3.org [mailto:www-tag-request@w3.org] > On Behalf Of Pat Hayes > Sent: 25 September 2007 21:19 > To: Booth, David (HP Software - Boston) > Cc: Technical Architecture Group WG > Subject: RE: Some TAG review of "Cool URIs for the Semantic Web" > > > > > From: Pat Hayes > >> [ . . . ] > >> OK, fair enough. But now, lets cut out all this gabble about > >> 'information resource'. As I have always suspected, this is ALL > >> about HTTP codes. > >> If you do a GET with a URI and you get a 200 response, > then the URI > >> is understood to denote the resource that sent you that > response, a > >> (REST-)representation of which you now have. > >> Otherwise, you know nothing at all about that the URI > denotes: it > >> might denote anything. > > > >I agree 100%. I think the key question to ask is: *Why* is it > >architecturally significant to distinguish between "information > >resources" and non-"information resources"? Why doesn't the Web > >architecture distinguish between other interesting classes > of things, > >such as mammals and non-mammals? > > > >AFAICT the answer is that some things are HTTP endpoints (i.e., can > >return a 200 response) and some are not, and this distinction is > >relevant to the Web architecture because when something is an HTTP > >endpoint a lot more architectural rules apply, such as content > >negotiation, media types, etc. AFAICT, whether something's > "essential > >characteristics can be conveyed in a message"[1] is quite irrelevant. > > Yes, exactly. And if one wanted to say something that went > beyond mere HTML, then speak of a 'transfer protocol > endpoint' for xxTP. But the point still stands: endpoints are > one thing, denotations are another. > > Pat > > > > >1. http://www.w3.org/TR/webarch/#def-information-resource > > > > > >David Booth, Ph.D. > >HP Software > >+1 617 629 8881 office | dbooth@hp.com > >http://www.hp.com/go/software > > > >Opinions expressed herein are those of the author and do not > represent > >the official views of HP unless explicitly stated otherwise. > > > > > -- > --------------------------------------------------------------------- > IHMC (850)434 8903 or (650)494 3973 home > 40 South Alcaniz St. (850)202 4416 office > Pensacola (850)202 4440 fax > FL 32502 (850)291 0667 cell > phayesAT-SIGNihmc.us http://www.ihmc.us/users/phayes > > >
Received on Wednesday, 26 September 2007 06:43:56 UTC