HTTP, in theory Roy T. Fielding | Senior Principal Scientist, Adobe Jul 2015 = 849,602,745 (36,127x)

A bit of context 23,517

10,022

2,738

623 130 Jun 93 Dec 93 Jun 94 Dec 94 Jun 95 Public WWW servers [Matthew Gray] Jul 2015 = 849,602,745 (36,127x)

A bit of context 23,517

Using XMosaic

www.ics.uci.edu

wwwstat

10,022

MOMspider

Conditional GET 2,738 1st WWW 623 130 Jun 93 Dec 93 Jun 94 Dec 94 Jun 95 Public WWW servers [Matthew Gray] Jul 2015 = 849,602,745 (36,127x)

A bit of context 23,517

Using XMosaic libwww-perl

www.ics.uci.edu Relative URLs

wwwstat HTML 10,022 2.0 MOMspider

Conditional 2nd WWW GET 2,738 1st WWW 623 130 Jun 93 Dec 93 Jun 94 Dec 94 Jun 95 Public WWW servers [Matthew Gray] Jul 2015 = 849,602,745 (36,127x)

A bit of context 23,517

Using XMosaic libwww-perl HTTP editor

www.ics.uci.edu Relative URLs

wwwstat HTML 10,022 2.0 MOMspider SJ IETF

Conditional 2nd WWW GET 2,738 1st WWW 623 130 Jun 93 Dec 93 Jun 94 Dec 94 Jun 95 Public WWW servers [Matthew Gray] What is the Web, really? Information

Browsers

http://www.w3.org/TR/html4/

next table of contents elements attributes index Network Working Group R. Fielding Request for Comments: 2068 UC Irvine Category: Standards Track J. Gettys J. C. Mogul DEC H. Frystyk T. Berners-Lee HTML 4.01 Specification MIT/LCS January 1997 W3C Recommendation 24 December 1999

This version: http://www.w3.org/TR/1999/REC-html401-19991224 (plain text [794Kb], gzip'ed tar archive of HTML files [371Kb], a .zip archive of HTML files [405Kb], gzip'ed Postscript file [746Kb, 389 pages], gzip'ed PDF file [963Kb]) Hypertext Transfer Protocol -- HTTP/1.1 Latest version of HTML 4.01: http://www.w3.org/TR/html401 Latest version of HTML 4: Status of this Memo http://www.w3.org/TR/html4 file://localhost/Users/fielding/ws/labs-webarch/uri/rfc/rfc3986. This document specifies an Internet standards track protocol for the Internet community, and requests Latest version of HTML: http://www.w3.org/TR/html discussion and suggestions for improvements. Please refer to the current edition of the "Internet Official Previous version of HTML 4.01: Protocol Standards" (STD 1) for the standardization state and status of this protocol. Distribution of this http://www.w3.org/TR/1999/PR-html40-19990824 Network Working Group memo is unlimitedT. B. erners-Lee Previous HTML 4 Recommendation: Request for Comments: 3986 W3C/MIT http://www.w3.org/TR/1998/REC-html40-19980424 Obsoletes: 2732, 2396, 1808 R. Fielding Editors: STD: 66 AbstractDay Software Dave Raggett Updates: 1738 The Hypertext TranLs.f eMr aPsrionttoecro l (HTTP) is an application-level protocol for distributed, collaborative, Arnaud Le Hors, W3C Category: Standards Track Adobe Systems Ian Jacobs, W3C hypermedia information systems. It is a generic, stateless, object-oriented protocol which can be used for many tasks, such Jaasn nuaamrye 2se0r0v5e rs and distributed object management systems, through extension of its Copyright ©1997-1999 W3C® (MIT, INRIA, Keio), All Rights Reserved. W3C liability, trademark, document use request methods. A feature of HTTP is the typing and negotiation of data representation, allowing systems and software licensing rules apply. to be built independently of the data being transferred. Uniform Resource IdentHifTiTeP rha s( bUeenR inI u)se: b y the World-Wide Web global information initiative since 1990. This specification Abstract Generic Syntadxefines the protocol referred to as “HTTP/1.1”. This specification defines the HyperText Markup Language (HTML), the publishing language of the . This specification defines HTML 4.01, which is a sSubtvaertsuions oof HfT tMhL i4s. InM aeddmitioon to the text, multimedia, and hyperlink features of the previous versions of HTML (HTML 3.2 [HTML32] and HTML 2.0 [RFC1866]), HTML 4 supports more multimedia options, Thisscrip tdocumenting langua gspecifieses, style an Internet standards track protocol for the Internet community, sheets, better printing facilities, and documents that are more accessiblea ntod u rseeqrsu ewsiths diissacbuislistiieosn. and suggestions for improvements. Please refer to the current HTML 4 also takes great strides towards the internationalization of documedeinttiso,n w oitfh tthhe “gIonatle orfn meta kOinffgicial Protocol Standards” (STD 1) for the standardization state the Web truly World Wide. and status of this protocol. Distribution of this memo is unlimited.

HTML 4 is an SGML application conforming to International StandardC ISoOp 8y8r79ig --h Sta nNdaordtice Generalized Markup Language [ISO8879]. Copyright © The (2005). All Rights Reserved. Status of this document Abstract This section describes the status of this document at the time of its publication. Other documents may supersede this document. The latest status of this document series is mAa inUtnainfoerdm a tR tehseo Wur3cCe. Identifier (URI) is a compact sequence of characters that identifies an abstract or physical resource. This specification defines the generic URI syntax and a process for resolving URI references that might be in relative , along with guidelines and security considerations for the use of URIs on the Internet. The URI syntax defines a grammar that is a superset of all valid URIs, allowing an implementation to parse the common components of a URI reference without knowing the scheme-specific requirements of every p4o/2s/s0i8b l1e2 :i0d9e nAtMifier. This specification does not define a generative grammarProtocols for URIs; that task is performed by the individual specifications of each URI scheme.

Fielding, et al Standards Track [Page 1]

4/2/08 12:16 AM An application integration system

IBM Computer GroupTalk conferencing

Hyper for example Card uucp News ENQUIRE VAX/ NOTES Hierarchical systems

for example for example unifies A Proposal Linked "Mesh" CERNDOC information describes

describes includes includes C.E.R.N This describes document division "Hypertext"

refers group group includes describes to wrote

section

Hypermedia etc Tim Comms Berners-Lee ACM [Berners-Lee, 1989]

Role of HTTP

Client "browser" program runs on many platforms

Generic browser

Dummy hypertext server makes existing database Hypertext look like hypertext to the browser Server

Hypertext Server

Information on one server reefers to information on another

Charles Eames on “design” [1972] What is your definition of “design”? ‣ A plan for arranging elements in such a way as to best accomplish a particular purpose Does the creation of design admit constraints? ‣ Design depends largely on constraints What constraints? ‣ Te sum of all constraints. ‣ One of the few effective keys to the design problem: § the ability of the designer to recognize as many of the constraints as possible § willingness and enthusiasm for working within these constraints § constraints of price, of size, of strength, balance, of surface, of time, etc. § each problem has its own peculiar list Constraints [ Desired Properties Constraints [ Desired Properties Low entry barrier § Hypermedia User Interface § Simple protocols for authoring and data transfer ‣ must be Simple and Reusable; want Extensible Constraints [ Desired Properties Low entry barrier § Hypermedia User Interface § Simple protocols for authoring and data transfer ‣ must be Simple and Reusable; want Extensible Distributed Hypermedia System § Large data transfers § Sensitive to user-perceived latency ‣ must be Data-driven and Streamable; want Performant Constraints [ Desired Properties Low entry barrier § Hypermedia User Interface § Simple protocols for authoring and data transfer ‣ must be Simple and Reusable; want Extensible Distributed Hypermedia System § Large data transfers § Sensitive to user-perceived latency ‣ must be Data-driven and Streamable; want Performant Multiple organizational boundaries § Anarchic scalability § Gradual and fragmented change (deployment) ‣ must be Scalable, Portable, Evolvable; want Reliable, Visible, Customizable, Confgurable, Extensible, ... REST on a slide l a

y p e ro replicated r gr e am uniform interface d ma separated ble RR CS LS VM U i nt er pr m oc ed on-demand stateless es ia mobile simple si te ng visible $ CSS LCS COD

reliable shared extensible reusable cacheable scalable multi- C$SS LC$SS org. LCODC$SS REST

Figure 5-9. REST Derivation by Style Constraints the disadvantages) of the optional constraints when they are known to be in effect for some realm of the overall system. For example, if all of the client software within an organization is known to support Java applets [45], then services within that organization can be constructed such that they gain the benefit of enhanced functionality via downloadable Java classes. At the same time, however, the organization’s firewall may prevent the transfer of Java applets from external sources, and thus to the rest of the Web it will appear as if those clients do not support code-on-demand. An optional constraint allows us to design an architecture that supports the desired behavior in the general case, but with the understanding that it may be disabled within some contexts.

5.1.8 Style Derivation Summary

REST consists of a set of architectural constraints chosen for the properties they induce on candidate architectures. Although each of these constraints can be considered in isolation, describing them in terms of their derivation from common architectural styles makes it

85 REST on a slide l a

y p e ro replicated r gr e am uniform interface d ma separated ble RR CS LS VM U i nt er pr m oc ed on-demand stateless es ia mobile simple si te ng visible $ CSS LCS COD

reliable shared extensible reusable cacheable scalable multi- C$SS LC$SS org. LCODC$SS REST

Figure 5-9. REST Derivation by Style Constraints the disadvantages) of the optional constraints when they are known to be in effect for some realm of the overall system. For example, if all of the client software within an organization is known to support Java applets [45], then services within that organization can be constructed such that they gain the benefit of enhanced functionality via downloadable Java classes. At the same time, however, the organization’s firewall may prevent the transfer of Java applets from external sources, and thus to the rest of the Web it will appear as if those clients do not support code-on-demand. An optional constraint allows us to design an architecture that supports the desired behavior in the general case, but with the understanding that it may be disabled within some contexts.

5.1.8 Style Derivation Summary

REST consists of a set of architectural constraints chosen for the properties they induce on candidate architectures. Although each of these constraints can be considered in isolation, describing them in terms of their derivation from common architectural styles makes it

85

Web Implementation (user view) Web Implementation (user view) Web Implementation (user view) Web Implementation (origin view)

Intermediary Proxy Cache

User Agents Webservers/Gateways Application Servers Accelerator Cache Dynamic Content Centralized Data RDBMS, NFS, SAN Web Architecture A vertical abstraction on implementation

User Agents $ $

$ Proxies Gateways Origin Servers

$ $ $

$ $ Web Architecture A vertical abstraction on implementation http://www.w3.org/TR/html4/

next table of contents elements attributes index Network Working Group R. Fielding Request for Comments: 2068 UC Irvine Category: Standards Track J. Gettys J. C. Mogul DEC H. Frystyk T. Berners-Lee HTML 4.01 Specification MIT/LCS January 1997 W3C Recommendation 24 December 1999

This version: http://www.w3.org/TR/1999/REC-html401-19991224 (plain text [794Kb], gzip'ed tar archive of HTML files [371Kb], a .zip archive of HTML files [405Kb], gzip'ed Postscript file [746Kb, 389 pages], gzip'ed PDF file [963Kb]) Hypertext Transfer Protocol -- HTTP/1.1 Latest version of HTML 4.01: http://www.w3.org/TR/html401 Latest version of HTML 4: Status of this Memo http://www.w3.org/TR/html4 file://localhost/Users/fielding/ws/labs-webarch/uri/rfc/rfc3986.html This document specifies an Internet standards track protocol for the Internet community, and requests Latest version of HTML: http://www.w3.org/TR/html discussion and suggestions for improvements. Please refer to the current edition of the "Internet Official Previous version of HTML 4.01: Protocol Standards" (STD 1) for the standardization state and status of this protocol. Distribution of this http://www.w3.org/TR/1999/PR-html40-19990824 Network Working Group memo is unlimitedT. B. erners-Lee Previous HTML 4 Recommendation: Request for Comments: 3986 W3C/MIT http://www.w3.org/TR/1998/REC-html40-19980424 Obsoletes: 2732, 2396, 1808 R. Fielding Editors: STD: 66 AbstractDay Software Dave Raggett Updates: 1738 The Hypertext TranLs.f eMr aPsrionttoecro l (HTTP) is an application-level protocol for distributed, collaborative, Arnaud Le Hors, W3C Category: Standards Track Adobe Systems Ian Jacobs, W3C hypermedia information systems. It is a generic, stateless, object-oriented protocol which can be used for many tasks, such Jaasn nuaamrye 2se0r0v5e rs and distributed object management systems, through extension of its Copyright ©1997-1999 W3C® (MIT, INRIA, Keio), All Rights Reserved. W3C liability, trademark, document use request methods. A feature of HTTP is the typing and negotiation of data representation, allowing systems and software licensing rules apply. to be built independently of the data being transferred. Uniform Resource IdentHifTiTeP rha s( bUeenR inI u)se: b y the World-Wide Web global information initiative since 1990. This specification Abstract Generic Syntadxefines the protocol referred to as “HTTP/1.1”. This specification defines the HyperText Markup Language (HTML), the publishing language of the World Wide Web. This specification defines HTML 4.01, which is a sSubtvaertsuions oof HfT tMhL i4s. InM aeddmitioon to the text, multimedia, and hyperlink features of the previous versions of HTML (HTML 3.2 [HTML32] and HTML 2.0 [RFC1866]), HTML 4 supports more multimedia options, Thisscrip tdocumenting langua gspecifieses, style an Internet standards track protocol for the Internet community, sheets, better printing facilities, and documents that are more accessiblea ntod u rseeqrsu ewsiths diissacbuislistiieosn. and suggestions for improvements. Please refer to the current HTML 4 also takes great strides towards the internationalization of documedeinttiso,n w oitfh tthhe “gIonatle orfn meta kOinffgicial Protocol Standards” (STD 1) for the standardization state the Web truly World Wide. and status of this protocol. Distribution of this memo is unlimited.

HTML 4 is an SGML application conforming to International StandardC ISoOp 8y8r79ig --h Sta nNdaordtice Generalized Markup Language [ISO8879]. Copyright © The Internet Society (2005). All Rights Reserved. Status of this document Abstract This section describes the status of this document at the time of its publication. Other documents may supersede this document. The latest status of this document series is mAa inUtnainfoerdm a tR tehseo Wur3cCe. Identifier (URI) is a compact sequence of characters that identifies an abstract or physical resource. This specification defines the generic URI syntax and a process for resolving URI references that might be in relative form, along with guidelines and security considerations for the use of URIs on the Internet. The URI syntax defines a grammar that is a superset of all valid URIs, allowing an implementation to parse the common components of a URI reference without knowing the scheme-specific requirements of every p4o/2s/s0i8b l1e2 :i0d9e nAtMifier. This specification does not define a generative grammarProtocols for URIs; that task is performed by the individual specifications of each URI scheme.

Fielding, et al Standards Track [Page 1]

4/2/08 12:16 AM