Web Architecture Demonstration Site

This site illustrates a few interesting aspects of the architecture of the World Wide Web. For more information on the Web's architecture, read The Architecture of the World Wide Web and also various Findings of the World Wide Web Consortium Technical Architecture Group (TAG). Tim Berners-Lee's World Wide Web design issues writings give a fascinating perspective from the man who invented the Web.

The following demonstrations are available:

Link to Demonstration Description

Simple

A very simple Web page. This shows the basic HTTP GET interaction between a Web browser and a server. When you click the link labeled "simple", your browser will issue an HTTP GET to ./demo1/test.html. A very simple HTML Web page should be served in response to that. You can use tools like View Page Source or View Page Info in your browser to see more about what happened.

Use URIs for each resource

Shows how Web applications become much more powerful if each resource has its own URI.

Proper use of HTTP Methods

HTTP provides methods such as GET, PUT and POST. These demonstrations illustrate some of the reasons that using these methods properly is very important. In fact, the 2nd version of the demo above correctly assigned URIs to each resource, but it mistakenly used GET to create a reservation. These demos show how to do better.

Resources and representations

The link for this demo is to http://rte.noahdemo.com/Clock/clock.php, which is the URI for a resource that happens to be a clock. The URI identifies the resource, which is the abstract clock. The HTML file that comes back to the browser is a representation of the state of the clock at the time you did the GET.

Rely on Authoritative Metadata

When you retrieve a representation of a resource using HTTP, it's accompanied by metadata that gives the media-type (e.g. text/html or image/jpeg), and other important information. It's very important that user agents such as browsers respect this metadata, but even some very widely used browsers do not do this correctly. When you write applications, it's important not only that they work with popular browsers, but that they use the web correctly.