rfc2291.txt

来自「RFC 的详细文档!」· 文本 代码 · 共 1,180 行 · 第 1/3 页

TXT
1,180
字号






Network Working Group                                          J. Slein
Request for Comments: 2291                            Xerox Corporation
Category: Informational                                       F. Vitali
                                                  University of Bologna
                                                           E. Whitehead
                                                            U.C. Irvine
                                                              D. Durand
                                                      Boston University
                                                          February 1998


        Requirements for a Distributed Authoring and Versioning
                    Protocol for the World Wide Web

Status of this Memo

   This memo provides information for the Internet community.  It does
   not specify an Internet standard of any kind.  Distribution of this
   memo is unlimited.

Copyright Notice

   Copyright (C) The Internet Society (1998).  All Rights Reserved.

Abstract

   Current World Wide Web (WWW or Web) standards provide simple support
   for applications which allow remote editing of typed data. In
   practice, the existing capabilities of the WWW have proven inadequate
   to support efficient, scalable remote editing free of overwriting
   conflicts. This document presents a list of features in the form of
   requirements for a Web Distributed Authoring and Versioning protocol
   which, if implemented, would improve the efficiency of common remote
   editing operations, provide a locking mechanism to prevent overwrite
   conflicts, improve link management support between non-HTML data
   types, provide a simple attribute-value metadata facility, provide
   for the creation and reading of container data types, and integrate
   versioning into the WWW.

1. Introduction

   This document describes functionality which, if incorporated in an
   extension to the existing HTTP proposed standard [HTTP], would allow
   tools for remote loading, editing and saving (publishing) of various
   media types on the WWW to interoperate with any compliant Web server.
   As much as possible, this functionality is described without
   suggesting a proposed implementation, since there are many ways to
   perform the functionality within the WWW framework. It is also



Slein, et. al.               Informational                      [Page 1]

RFC 2291          Distributed Authoring and Versioning     February 1998


   possible that a single mechanism could simultaneously satisfy several
   requirements.

   This document reflects the consensus of the WWW Distributed Authoring
   and Versioning working group (WebDAV) as to the functionality that
   should be standardized to support distributed authoring and
   versioning on the Web.  As with any set of requirements, practical
   considerations may make it impossible to satisfy them all.  It is the
   intention of the WebDAV working group to come as close as possible to
   satisfying them in the specifications that make up the WebDAV
   protocol.

2. Rationale

   Current Web standards contain functionality which enables the editing
   of Web content at a remote location, without direct access to the
   storage media via an operating system. This capability is exploited
   by several existing HTML distributed authoring tools, and by a
   growing number of mainstream applications (e.g., word processors)
   which allow users to write (publish) their work to an HTTP server. To
   date, experience from the HTML authoring tools has shown they are
   unable to meet their users' needs using the facilities of Web
   standards. The consequence of this is either postponed introduction
   of distributed authoring capability, or the addition of nonstandard
   extensions to the HTTP protocol or other Web standards.  These
   extensions, developed in isolation, are not interoperable.

   Other authoring applications have wanted to access document
   repositories or version control systems through Web gateways, and
   have been similarly frustrated.  Where this access is available at
   all, it is through nonstandard extensions to HTTP or other standards
   that force clients to use a different interface for each vendor's
   service.

   This document describes requirements for a set of standard extensions
   to HTTP that would allow distributed Web authoring tools to provide
   the functionality their users need by means of the same standard
   syntax across all compliant servers. The broad categories of
   functionality that need to be standardized are:

        Properties
        Links
        Locking
        Reservations
        Retrieval of Unprocessed Source
        Partial Write
        Name Space Manipulation
        Collections



Slein, et. al.               Informational                      [Page 2]

RFC 2291          Distributed Authoring and Versioning     February 1998


        Versioning
        Variants
        Security
        Internationalization

3. Terminology

   Where there is overlap, usage is intended to be consistent with that
   in the HTTP 1.1 specification [HTTP].

   Client
        A program which issues HTTP requests and accepts responses.

   Collection
        A collection is a resource that contains other resources, either
        directly or by reference.

   Distributed Authoring Tool
        A program which can retrieve a source entity via HTTP, allow
        editing of this entity, and then save/publish this entity to a
        server using HTTP.

   Entity
        The information transferred in a request or response.

   Hierarchical Collection
        A hierarchical organization of resources.  A hierarchical
        collection is a resource that contains other resources,
        including collections, either directly or by reference.

   Link
        A typed connection between two or more resources.

   Lock
        A mechanism for preventing anyone other than the owner of the
        lock from accessing a resource.

   Member of Version Graph
        A resource that is a node in a version graph, and so is derived
        from the resources that precede it in the graph, and is the
        basis of those that succeed it.

   Property
        Named descriptive information about a resource.

   Reservation
        A declaration that one intends to edit a resource.




Slein, et. al.               Informational                      [Page 3]

RFC 2291          Distributed Authoring and Versioning     February 1998


   Resource
        A network data object or service that can be identified by a
        URI.

   Server
        A program which receives and responds to HTTP requests.

   User Agent
        The client that initiates a request.

   Variant
        A representation of a resource.  A resource may have one or more
        representations associated with it at any given time.

   Version Graph
        A directed acyclic graph with resources as its nodes, where each
        node is derived from its predecessor(s).

   Write Lock
        A lock that prevents anyone except its owner from modifying the
        resource it applies to.

4. General Principles

   This section describes a set of general principles that the WebDAV
   extensions should follow.  These principles cut across categories of
   functionality.

4.1. User Agent Interoperability

   All WebDAV clients should be able to work with any WebDAV-compliant
   HTTP server. It is acceptable for some client/server combinations to
   provide special features that are not universally available, but the
   protocol should be sufficient that a basic level of functionality
   will be universal.

4.2. Client Simplicity

   The WebDAV extensions should be designed to allow client
   implementations to be simple.











Slein, et. al.               Informational                      [Page 4]

RFC 2291          Distributed Authoring and Versioning     February 1998


4.3. Legacy Client Support

   It should be possible to implement a WebDAV-compliant server in such
   a way that it can interoperate with non-WebDAV clients.  Such a
   server would be able to understand any valid HTTP 1.1 request from an
   ordinary Web client without WebDAV extensions, and to provide a valid
   HTTP 1.1 response that does not require the client to understand the
   extensions.

4.4. Data Format Compatibility

   WebDAV-compliant servers should be able to work with existing
   resources and URIs [URL]. Special additional information should not
   become a mandatory part of document formats.

4.5. Replicated, Distributed Systems

   Distribution and replication are at the heart of the Internet.  All
   WebDAV extensions should be designed to allow for distribution and
   replication.  Version trees should be able to be split across
   multiple servers.  Collections may have members on different servers.
   Any resource may be cached or replicated for mobile computing or
   other reasons.  Consequently, the WebDAV extensions must be able to
   operate in a distributed, replicated environment.

4.6 Parsimony in Client-Server Interactions

   The WebDAV extensions should keep to a minimum the number of
   interactions between the client and the server needed to perform
   common functions. For example, publishing a document to the Web will
   often mean publishing content together with related properties.  A
   client may often need to find out what version graph a particular
   resource belongs to, or to find out which resource in a version graph
   is the published one.  The extensions should make it possible to do
   these things efficiently.

4.7. Changes to HTTP

   WebDAV adds a number of new types of objects to the Web: properties,
   collections, version graphs, etc.  Existing HTTP methods such as
   DELETE and PUT will have to operate in well-defined ways in this
   expanded environment. WebDAV should explicitly address not only new
   methods, headers, and MIME types, but also any required changes to
   the existing HTTP methods and headers.







Slein, et. al.               Informational                      [Page 5]

RFC 2291          Distributed Authoring and Versioning     February 1998


4.8. Alternate Transport Mechanisms

   It may be desirable to transport WebDAV requests and responses by
   other mechanisms, particularly EMail, in addition to HTTP.  The
   WebDAV protocol specification should not preclude a future body from
   developing an interoperability specification for disconnected
   operation via EMail.

5. Requirements

   In the requirement descriptions below, the requirement will be
   stated, followed by its rationale.

5.1. Properties

5.1.1. Functional Requirements

   It must be possible to create, modify, read and delete arbitrary
   properties on resources of any media type.

5.1.2. Rationale

   Properties describe resources of any media type.  They may include
   bibliographic information such as author, title, publisher, and
   subject, constraints on usage, PICS ratings, etc. These properties
   have many uses, such as supporting searches on property values,
   enforcing copyrights, and the creation of catalog entries as
   placeholders for objects which are not available in electronic form,
   or which will be available later.

5.2. Links

5.2.1. Functional Requirements

   It must be possible to create, modify, read and delete typed links
   between resources of any media type.

5.2.2. Rationale

   One type of link between resources is the hypertext link, which is
   browsable using a hypertext style point-and-click user interface.
   Links, whether they are browsable hypertext links, or simply a means
   of capturing a relationship between resources, have many purposes.
   Links can support pushbutton printing of a multi-resource document in
   a prescribed order, jumping to the access control page for a
   resource, and quick browsing of related information, such as a table





Slein, et. al.               Informational                      [Page 6]

RFC 2291          Distributed Authoring and Versioning     February 1998


   of contents, an index, a glossary, a bibliographic record, help
   pages, etc. While link support is provided by the HTML "LINK"
   element, this is limited only to HTML resources [HTML]. Similar
   support is needed for bitmap image types, and other non-HTML media
   types.

5.3. Locking

5.3.1. General Principles

   5.3.1.1. Independence of locks. It must be possible to lock a
   resource without performing an additional retrieval of the resource,
   and without committing to editing the resource.

   5.3.1.2. Multi-Resource Locking. It must be possible to take out a
   lock on multiple resources residing on the same server in a single
   action, and this locking operation must be atomic across these
   resources.

5.3.2. Functional Requirements

   5.3.2.1. Write Locks. It must be possible to restrict modification of
   a resource to a specific person.

   5.3.2.2. Lock Query. It must be possible to find out whether a given
   resource has any active locks, and if so, who holds those locks.

   5.3.2.3. Unlock. It must be possible to remove a lock.

5.3.3. Rationale

   At present, the Web provides limited support for preventing two or
   more people from overwriting each other's modifications when they
   save to a given URI. Furthermore, there is no way to discover whether
   someone else is currently making modifications to a resource. This is
   known as the "lost update problem," or the "overwrite problem." Since
   there can be significant cost associated with discovering and
   repairing lost modifications, preventing this problem is crucial for
   supporting distributed authoring. A write lock ensures that only one
   person may modify a resource, preventing overwrites. Furthermore,
   locking support is a key component of many versioning schemes, a
   desirable capability for distributed authoring.

   An author may wish to lock an entire web of resources even though he
   is editing just a single resource, to keep the other resources from
   changing. In this way, an author can ensure that if a local hypertext
   web is consistent in his distributed authoring tool, it will then be




Slein, et. al.               Informational                      [Page 7]

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?