Not Signed-In
Which clippings match 'Roy Fielding' keyword pg.1 of 1
31 MAY 2010

Representational State Transfer (REST)

"The Representational State Transfer (REST) style is an abstraction of the architectural elements within a distributed hypermedia system. REST ignores the details of component implementation and protocol syntax in order to focus on the roles of components, the constraints upon their interaction with other components, and their interpretation of significant data elements. It encompasses the fundamental constraints upon components, connectors, and data that define the basis of the Web architecture, and thus the essence of its behavior as a network–based application."

(Roy Fielding, 2000)

[1] Cody Fauser, James MacAulay, Edward Ocampo–Gooding, and John Guenin 'High level overview of a RESTful Rails web service'.

[2] Fielding, Roy Thomas. Architectural Styles and the Design of Network–based Software Architectures. Doctoral dissertation, University of California, Irvine, 2000.



2000abstractionAPIcommon interfacedata • distributed hypermedia system • integratenetwork • network-based application • programming • Representational State Transfer • RESTREST APIRoy Fieldingsoftware architectureUniversity of Californiaweb architectureweb services


Simon Perkins
13 JULY 2009

The World Wide Web is a hypermedia application

"The World Wide Web is a hypermedia application, not just a collection of specifications. Again, our software development training doesn't help us here very much. Good ol' functional decomposition makes us (well, me at least) want to see the Web as HTTP (RFC 2616), URIs (RFC 3986), MIME types (Wikipedia entry to set of related RFCs), HTML/XHTML (W3C markup specifications) and HTML forms (W3C recommendation and RFC 2388).

In actual fact, it's all of those working together to provide, as Eric [Newcomer] said, the Web as a distributed hypermedia application (which, if I remember correctly is a point also made by Roy Fielding himself in the dissertation). The Web works because both user agents (browsers) and the server applications use all of these specifications together to expose a set of functionality to the interactive user. There is no a priori agreement between the browser and the Web server as to how the information service built on these specifications used, but because of agreement on how these specifications are used together, as an application, it doesn't matter if today, is built using Microsoft ASP, and tomorrow it's built on PHP. Apart from the application of the 'Cool URIs Don't Change' principle, if a user starts from , they will always be able to utilize the CNN news service via their browser's implementation of those specifications and the implicit agreement of CNN to publish its service in accordance with them too.
A hypermedia application such as Atom or RSS and content negotiation via MIME types, HTTP accept headers and embedded tags mean that this sort of evolution could happen without breaking the client–provided there is agreement on the application semantics of how those things should be both used and interpreted between clients and servers. Anything else means you're back to brittle, API based systems that can no longer evolve independently of each other."
(Andrew Townley, 16th December 2006)

[Andrew Townley attempts to re–emphasise the significance of the Internet as a hypermedia system. He does so as a criticism of what be believes is the conventional logic of programming which by extension is preoccupied with the development of APIs. So despite the immediate value of the REST API for enabling interaction with services by sites such as such efforts only conceal the real value of the Internet as a generalised, flexible and interoperable system.]


APIapplicationarchitectureatomDeliciousdistributed hypermedia applicationhypermedia • hypermedia application • ICTinnovationinteractive mediaInternetinteroperability • MIME type • negotiationREST APIRoy FieldingRSSservicetechnologyweb


Simon Perkins

to Folksonomy

Can't access your account?

New to Folksonomy?

Sign-Up or learn more.