W3C home > Mailing lists > Public > ietf-http-wg@w3.org > April to June 2009

Re: Content Sniffing impact on HTTPbis - #155

From: Roy T. Fielding <fielding@gbiv.com>
Date: Tue, 16 Jun 2009 16:05:06 -0700
Message-Id: <5439410A-7221-460C-95D4-541E00943F06@gbiv.com>
Cc: HTTP Working Group <ietf-http-wg@w3.org>
To: Jamie Lokier <jamie@shareable.org>
On Jun 16, 2009, at 11:09 AM, Jamie Lokier wrote:
> Roy T. Fielding wrote:
>> On Jun 16, 2009, at 7:45 AM, Jamie Lokier wrote:
>>> Ok, but what about a resource that accepts POSTed information _and_
>>> information in the URL?  For example a hypothetical POSTable
>>> http://example.com/post-news/author-is/Jamie/subject-is/Good% 
>>> 20morning
>>>
>>> Then the URL doesn't point to the conceptual resource any more.   
>>> Part
>>> of the URL does (http://example.com/post-news/); the rest of the URL
>>> does not identify a resource, but is input to it.
>>
>> No, (http://example.com/post-news/) is not *the* resource.
>> It may be a resource, but it is not the resource to which
>> the URI above identifies, and therefore your assumption about
>> the meaning of "resource" in Web architecture is wrong.
>
> No, because I'm not describing the meaning of "resource" in Web
> architecture here, I'm describing the sensible use of the English
> concept of a resource.

Which definition would that be?

> Web architecture says the resource accessed through
>
> http://example.com/post-news/author-is/Jamie/subject-is/Good%20morning
>
> is different from the resource accessed through
>
> http://example.com/post-news/author-is/Roy/subject-is/Bzzt

Hard to tell from your example.  The resource is either a form
containing that subject pre-filled (e.g., like a GET on any mailto
URI) or accessing that URI actually does post that news (which is
still a resource and might even be standards-compliant with HTTP
if it does not allow GET).  The latter is not a very useful resource,
but it is still a resource because I can use it to Bzzt many times.

> Which doesn't fit very well the English concept of "the resource"
> which is being accessed when you actually do those things.

Again, which English concept of "the resource"?  There are five
definitions in Webster and more in OED.  Or do you have some other
authoritative definition in mind, such as one found in a peer-reviewed
journal or academic work?

In Webster, the 1a definition (a source of supply or support) and
1e (a source of information or expertise) are both about *doing*
something.  That's what a resource is -- something that you can go
back to in the *future* as a source to supply something, whether
that something is inbound in nature (e.g., storage space) or
outbound in nature (e.g., a home page).

Web architecture says (by definition) that a URI is a resource
identifier, and thus anything identifiable with a URI must fit
within our model of "resource".  It is not possible to define a
model that we say "describes the Web", like the REST model that is
the basis of URI and HTTP standards, and at the same time say that
we are only interested in describing things that look like a
response to a file-like request.  The standard protocols must
support the entire scope of the Web.  The terminology must be
sufficiently expressive to encompass the entire scope without
preventing that which already appears on the Web.

> (If those URLs didn't just post news, say if you could read filtered
> news through them too, _then_ the concept would fit better.  It has
> nothing to do with implementation; it is about conceptual models).
>
> So you have to *define* the Web architecture meaning of resource, and
> that will always be a little dissonant with what the conjures up for
> people who aren't familiar with Web architecture.

I did define that meaning and it is *also* consistent with the English
term.  Honestly, I think you need to do a little more research on the
subject before you can seriously suggest that the Web architecture
definition in use for the past 14 or so years, peer-reviewed five
times in the IETF, twice in IEEE, and by my own dissertation committee
is somehow less accurate or useful in standards than ... what?

>> Your mistake is assuming that "resource" has something to do with
>> the implementation behind the server interface.
>
> No, I'm not talking about the implementation at all.  I'm talking
> about concepts, models and common language meanings.

That's what I am talking about.  I can't solve the case where your
opinion of "common" does not match my opinion of "common" other than
to point to established peer-reviewed writing, which is the very
thing you are arguing against.

>> Ian's mistake is assuming that what people
>> refer to is the bag of bits they get back, as opposed to the function
>> being exploited by the request method on the server-provided resource
>> at the time of the request (e.g., if the link is to today's weather
>> report then the resource is today's weather report, not some former
>> weather report's bag of bits).
>
> I agree with that.
>
>> In any case, the word "resource" is far more commonly used the way
>> I use it than the way that Ian described.  As indicated, it comes
>> direct from the English language.
>
> Your usage comes from the meaning as used in Web architecture, and
> seems to my mind dissonant with the meaning used in English in these
> cases.

No, it doesn't.  My research is based on the entire Web and how
it has been/is/will be used everywhere.  That research fed into
most of the Web architecture and my dissertation, which has been
reviewed by a ridiculously large number of academics (both inside
and outside computer sciences) and industry professionals.  If I
had screwed up the definition of resource or somehow brutalized
the "common" use of the term, then there would have be a long trail
of comments and articles telling the whole world how I got it wrong.

Maybe someone will do that this year, and after being adequately
peer reviewed and found to be more expressive or understandable
than the current terminology set, then the associated standards
will be rephrased in that new terminology.  However, that sure
as heck isn't going to come out of an email thread based on
individual opinions about what is "common".  Common is always
a function of context. If your context is a management school,
then your definition of "resource" is a person employed or
contracted to do work.


In any case, the purpose of our specifications is to *define* Web
architecture, so it is kind of pointless suggesting that our audience
would not be familiar with the terms.

> I'm quite familiar with the Web architecture meaning.  I just don't
> think it fits very well the conceptual models that are actually being
> used on some web sites, and I think that is the root of Ian's idea
> that it confuses some developers.  Though I don't agree with Ian's
> suggestion.  Obviously the Web architecture meaning fits some sites'
> conceptual models quite well.

I have yet to see a site that it doesn't fit well.  The fact that
a typical browser page consists of representations of many different
resources rendered according to a particular media type processing
algorithm does not change the fact that each of those resources
can also be accessed and manipulated individually.  Thus, we can
and do say that "google reader" is a resource even though the
content it displays is unique to each user's cookie set and
request time, and that does not take away from the individual
elements being composed dynamically from other resource
representations via AJAX.

....Roy
Received on Tuesday, 16 June 2009 23:05:41 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Friday, 27 April 2012 06:51:04 GMT