[Fwd: Re: [rest-discuss] RFC for REST?]

Web history bookmark...

Forwarded message 1

  • From: Roy T. Fielding <fielding@gbiv.com>
  • Date: Tue, 7 Nov 2006 14:06:38 -0800
  • Subject: Re: [rest-discuss] RFC for REST?
  • To: lucas@gonze.com
  • Cc: REST Discuss <rest-discuss@yahoogroups.com>
  • Message-Id: <6A3D524C-33A7-400D-8AAA-BFEDE3E7BC93@gbiv.com>
On Nov 7, 2006, at 12:07 PM, Lucas Gonze wrote:
> On Tue, 7 Nov 2006, Roy T. Fielding wrote:
>> that document is my dissertation.  Anyone who claims that REST is
>> something
>> other than what is in my dissertation is just babbling nonsense
> I was under the impression that REST was a formalization of the  
> architectural design that the HTTP 1.1 group developed, the thing  
> formerly known as "the web object model."

Yes, but keep in mind that this was early in the process of HTTP/1.1.
It is the "HTTP object model" that I developed in 1994-95 as part of
the early HTTP/1.0 spec authoring and HTTP/1.1 design process, back
when Henrik Frystyk Nielsen and I were the "HTTP 1.1 group" (i.e.,
before the IETF WG was even initiated).  The model was not developed
by consensus -- only the results after applying it were subjected to

We would discuss various proposals for HTTP (including our own) and
I would try to figure out why each fit (or didn't fit) the model, and
use that to either change the proposal or change the model.  I don't
even remember sharing that with Henrik -- we just talked things out,
tried a few examples on the whiteboard and in various implementations,
and came to a general understanding of the model through that process.
[I am probably oversimplifying that process -- we each had our own
implementations (CERN libwww and httpd on the one hand, libwww-perl
and NCSA httpd on the other) and were friends with most of the major
Web developers at the time, so everything we did was influenced by a
larger cast of characters, most of whom were probably amused by our
attempts to standardize the Web while they were busy with startups.]

Later, in the summer of 95 when I was at MIT, I had a discussion
with TimBL about the Web architecture and the software engineering
principles that he applied during its first few years of development.
This was four years into my Ph.D. research in Software (UCI avoided
calling it SE research, since our group has a very broad perspective
on software development) and my interest in the Web was only indirectly
related to my studies at the time (a.k.a., my Phase II drift).
He suggested that I study the software engineering principles that
influenced him during the early Web development, and the role of
simplicity in particular.  I was far too busy with the standards
effort by that point, but the idea got stuck in the back of my mind.

Throughout the HTTP standardization process, I was called on to defend
the design choices of the Web.  That is an extremely difficult thing
to do within a process that accepts proposals from anyone on a topic
that was rapidly becoming the center of an entire industry.  I had
comments from well over 500 developers, many of whom were distinguished
engineers with decades of experience, and I had to explain everything
from the most abstract notions of Web interaction to the finest details
of HTTP syntax.  That process honed my model down to a core set of
principles, properties, and constraints that are now called REST.

I didn't consider that to be my dissertation topic until some point
during the WebDAV discussions, when Larry Masinter said something along
the lines that the model itself was worthy of a dissertation focus.

> Logically, REST really had to predate HTTP 1.1 in order for HTTP  
> 1.1 to be so RESTful.
> No?

No.  That is more of a philosophical question than a logical one.
HTTP/1.1 is a specific architecture that, to the extent I succeeded
in applying REST-based design, allows people to deploy RESTful
network-based applications in a mostly efficient way, within the
constraints imposed by legacy implementations.  The design principles
certainly predated HTTP, most of them were already applied to the
HTTP/1.0 family, and I chose which constraints to apply during the
pre-proposal process of HTTP/1.1, yet HTTP/1.1 was finished long before
I had the available time to write down the entire model in a form
that other people could understand.  All of my products are developed
iteratively, so what you see as a chicken and egg problem is more
like a dinosaur-to-chicken evolution than anything so cut and dried
as the conceptual form pre-existing the form.  HTTP as we know it
today is just as dependent on the conceptual notion of REST as the
definition of REST is dependent on what I wanted HTTP to be today.

I guess a better question is: if Roy hadn't bothered to develop
the model and was not the one editing the specification, would HTTP
be RESTful today?  *shrug*  Looking at what happened to WebDAV after
I stopped participating, and then versioning, ACLs, and now CalDAV,
I know what my biased answer would be.  Contrast those to APP, which
was consciously developed according to the style (mostly without
need of my participation).

....Roy  [who still remembers people saying publicly that any serious
           standardization of the Web should be based on IIOP, not HTTP]

Yahoo! Groups Links

<*> To visit your group on the web, go to:

<*> Your email settings:
    Individual Email | Traditional

<*> To change settings online go to:
    (Yahoo! ID required)

<*> To change settings via email:

<*> To unsubscribe from this group, send an email to:

<*> Your use of Yahoo! Groups is subject to:

Received on Tuesday, 7 November 2006 22:21:48 UTC