Architecture of the World Wide Web, Volume One
Total Page:16
File Type:pdf, Size:1020Kb
Architecture of the World Wide Web, Volume One W3C Recommendation 15 December 2004 This version: http://www.w3.org/TR/2004/REC-webarch-20041215/ Latest version: http://www.w3.org/TR/webarch/ Previous version: http://www.w3.org/TR/2004/PR-webarch-20041105/ Editors: Ian Jacobs, W3C Norman Walsh, Sun Microsystems, Inc. Authors: See acknowledgments (§8). Please refer to the errata for this document, which may include some normative corrections. See also translations. Copyright © 2002-2004 W3C ® (MIT, ERCIM, Keio), All Rights Reserved. W3C liability, trademark, document use and software licensing rules apply. Your interactions with this site are in accordance with our public and Member privacy statements. Abstract The World Wide Web uses relatively simple technologies with sufficient scalability, efficiency and utility that they have resulted in a remarkable information space of interrelated resources, growing across languages, cultures, and media. In an effort to preserve these properties of the information space as the technologies evolve, this architecture document discusses the core design components of the Web. They are identification of resources, representation of resource state, and the protocols that support the interaction between agents and resources in the space. We relate core design components, constraints, and good practices to the principles and properties they support. Status of this document This section describes the status of this document at the time of its publication. Other documents may supersede this document. A list of current W3C publications and the latest revision of this technical report can be found in the W3C technical reports index at http://www.w3.org/TR/. W3C Recommendation 15 December 2004 Architecture of the World Wide Web, Volume One This is the 15 December 2004 Recommendation of “Architecture of the World Wide Web, Volume One.” This document has been reviewed by W3C Members, by software developers, and by other W3C groups and interested parties, and is endorsed by the Director as a W3C Recommendation. It is a stable document and may be used as reference material or cited from another document. W3C's role in making the Recommendation is to draw attention to the specification and to promote its widespread deployment. This enhances the functionality and interoperability of the Web. This document was developed by W3C's Technical Architecture Group (TAG), which, by charter maintains a list of architectural issues. The scope of this document is a useful subset of those issues; it is not intended to address all of them. The TAG intends to address the remaining (and future) issues now that Volume One is published as a W3C Recommendation. A complete history of changes so this document is available. Please send comments on this document to [email protected] (public archive of public-webarch-comments). TAG technical discussion takes place on [email protected] (public archive of www-tag). This document was produced under the W3C IPR policy of the July 2001 Process Document. The TAG maintains a public list of patent disclosures relevant to this document; that page also includes instructions for disclosing a patent. An individual who has actual knowledge of a patent which the individual believes contains Essential Claim(s) with respect to this specification should disclose the information in accordance with section 6 of the W3C Patent Policy. Table of Contents 1. Introduction............................................................................................................................. 4 1.1. About this Document .................................................................................................... 7 1.1.1. Audience of this Document ................................................................................ 8 1.1.2. Scope of this Document ..................................................................................... 8 1.1.3. Principles, Constraints, and Good Practice Notes ............................................. 9 2. Identification ........................................................................................................................... 9 2.1. Benefits of URIs ........................................................................................................... 9 2.2. URI/Resource Relationships ...................................................................................... 10 2.2.1. URI collision ..................................................................................................... 11 2.2.2. URI allocation................................................................................................... 12 2.2.3. Indirect Identification ........................................................................................ 13 2.3. URI Comparisons ....................................................................................................... 13 2.3.1. URI aliases....................................................................................................... 14 2.3.2. Representation reuse....................................................................................... 14 2.4. URI Schemes ............................................................................................................. 15 2.4.1. URI Scheme Registration................................................................................. 16 2.5. URI Opacity ................................................................................................................ 16 2.6. Fragment Identifiers ................................................................................................... 17 2.7. Future Directions for Identifiers .................................................................................. 18 2.7.1. Internationalized identifiers .............................................................................. 18 2.7.2. Assertion that two URIs identify the same resource ........................................ 18 3. Interaction............................................................................................................................. 18 3.1. Using a URI to Access a Resource ............................................................................ 19 3.1.1. Details of retrieving a representation ............................................................... 20 3.2. Representation Types and Internet Media Types ...................................................... 21 3.2.1. Representation types and fragment identifier semantics ................................. 22 3.2.2. Fragment identifiers and content negotiation ................................................... 22 3.3. Inconsistencies between Representation Data and Metadata ................................... 23 2 Architecture of the World Wide Web, Volume One W3C Recommendation 15 December 2004 3.4. Safe Interactions ........................................................................................................ 25 3.4.1. Unsafe interactions and accountability............................................................. 26 3.5. Representation Management ..................................................................................... 27 3.5.1. URI persistence................................................................................................ 28 3.5.2. Linking and access control............................................................................... 28 3.5.3. Supporting Navigation...................................................................................... 29 3.6. Future Directions for Interaction ................................................................................. 29 4. Data Formats........................................................................................................................ 30 4.1. Binary and Textual Data Formats............................................................................... 30 4.2. Versioning and Extensibility ....................................................................................... 31 4.2.1. Versioning ........................................................................................................ 31 4.2.2. Versioning and XML namespace policy ........................................................... 32 4.2.3. Extensibility ...................................................................................................... 33 4.2.4. Composition of data formats ............................................................................ 34 4.3. Separation of Content, Presentation, and Interaction ................................................ 34 4.4. Hypertext .................................................................................................................... 36 4.4.1. URI references ................................................................................................. 37 4.5. XML-Based Data Formats.......................................................................................... 37 4.5.1. When to use an XML-based format ................................................................. 37 4.5.2. Links in XML..................................................................................................... 38 4.5.3. XML namespaces ............................................................................................ 38 4.5.4. Namespace documents ................................................................................... 39 4.5.5. QNames in XML..............................................................................................