rfc2483.txt

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

TXT
900
字号






Network Working Group                                      M. Mealling
Request for Comments: 2483                     Network Solutions, Inc.
Category: Experimental                                  R. Daniel, Jr.
                                        Los Alamos National Laboratory
                                                          January 1999


                        URI Resolution Services
                      Necessary for URN Resolution

Status of this Memo

   This memo defines an Experimental Protocol for the Internet
   community.  It does not specify an Internet standard of any kind.
   Discussion and suggestions for improvement are requested.
   Distribution of this memo is unlimited.

Copyright Notice

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

Abstract

   Retrieving the resource identified by a Uniform Resource Identifier
   (URI) [1] is only one of the operations that can be performed on a
   URI.  One might also ask for and get a list of other identifiers that
   are aliases for the original URI or a bibliographic description of
   the resource the URI denotes, for example. This applies to both
   Uniform Resource Names (URNs) and Uniform Resource Locators (URLs).
   Uniform Resource Characteristics (URCs) are discussed in this
   document but only as descriptions of resources rather than
   identifiers.

   A service in the network providing access to a resource may provide
   one or some of these options, but it need not provide all of them.
   This memo specifies an initial set of these operations that can be
   used to describe the interactions provided by a given access service.
   It also suggests guidelines that should be adhered to when those
   operations are encoded in a protocol.

1. Introduction

   In the course of formulating current proposals [2] regarding URNs
   [3], it became apparent that requiring servers to manage all of the
   desired functions or requiring clients to process varied information
   returned by a server was unrealistic and a barrier to adoption. There
   needed to be some way for a client to be able to identify a server
   that specialized in the complex and another that specialized in the



Mealling & Daniel             Experimental                      [Page 1]

RFC 2483                URI Resolution Services             January 1999


   simple (but fast). Also, in subsequent conversations it became
   obvious that, in most cases, some of the operations were
   inappropriate or difficult for certain identifiers.

   The Problem

   In the process of learning about a resource in the Internet, there
   are a variety of possible functions that may be important and/or
   useful, such as discovery of locators, names, descriptions, and
   accessing the resource itself. A given service may support only a
   subset of these; hence, it is important to describe such an access
   service by the types of functions supported and the resources of
   which it has some knowledge. For example, in the framework for an RDS
   described in [5] the RDS itself may provide URLs [6][7], while the
   resolvers may provide descriptions, URLs, or even the resources
   themselves. The design of an RDS, as proposed in RFC 2168 [2], may be
   more generous and provide all of the above.

   This problem requires some well understood set of identifiers that
   specify those operations. But an exhaustive set would both be
   impossible and not very necessary. Thus, this document will list
   several operations, as well as, lay out requirements for specifying
   new operations.

   The purpose of this document is to define a list of such functions
   and short names for them and then use them in defining the interface
   to an access service. Previous versions of this document referred to
   services where the arguments were specific types of URIs such as URNs
   or URLs.  These services were called "N2L" and "L2L",for example.
   Their use has been changed in favor of the more general URI form.

   Design Criteria

   To meet these requirements a fairly simple design criteria was used.
   The need to identify the operation with some token such that its
   operands, algorithm, and errors were known proved sufficient to meet
   these requirements.

2. General Specification

   To provide a framework both for the specifications in this document
   and for future work to be written by others, the guidelines below are
   suggested for documents that seek to specify new operations. Any
   specification of a member of this set of operations should address
   these issues with respect to its operands, algorithm, output, and
   errors.





Mealling & Daniel             Experimental                      [Page 2]

RFC 2483                URI Resolution Services             January 1999


   Due to the small number of listed functions, a registration mechanism
   was dismissed as premature. If this list grows, a registration
   mechanism will probably be needed.

   Also, due to the experimental nature of this document and the systems
   that use its specifications, the use of words like MUST and SHALL are
   limited. Where used they reflect a case where this specification
   could cause harm to existing, non-experimental systems such as HTTP
   and URNs.  Thus, the key words "MUST", "MUST NOT", "REQUIRED",
   "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY",
   and "OPTIONAL" in this document are to be interpreted as described in
   RFC 2119.

2.1 Operands

   Operands must contain the following pieces of information:

      * name of the operation
      * case insensitive mnemonic for the operation
      * number of operands
      * type of each operand
      * format of each operand

2.2 Algorithm

   The exact algorithm for the operation must either be specified
   completely or it must be considered opaque and defined by the server
   or application.

2.3 Output

   Output must specify one of the following:

      * there is no output
      * the output is undefined
      * the output itself and its content
      * the fact that the output is an object and the object's
        type and format
      * any non-protocol specific errors

2.4 Error Conditions

   All errors that are considered applicable across all implementations
   and application environments must be included. Errors that depend on
   the system conveying the service are not included. Thus, many of the
   expected errors such as service availability or operation syntax are
   not included in this document since they are implementation
   dependent.



Mealling & Daniel             Experimental                      [Page 3]

RFC 2483                URI Resolution Services             January 1999


2.5 Security Considerations

   Any security considerations relating to the service provided must be
   specified. This does NOT include considerations dealing with the
   protocol used to convey the service or to those that normally
   accompany the results of the service. For example, a service that
   returned a single URL would need to discuss the situation where
   someone maliciously inserts an incorrect URL into the resolver but
   NOT the case where someone sends personal information across the
   Internet to the resource identified by the correct URL.

3. Encoding The Operations

   To be useful, these operations have to be used within some system or
   protocol. In many cases, these systems and protocols will place
   restrictions on which operations make sense and how those that do are
   syntactically represented. It is sufficient for those protocols to
   define new operations within their own protocol specification
   documents but care should be taken to make this fact well known.

   Also, a given system or protocol will have its own output
   specifications that may restrict the output formats of a given
   operation.  Additionally, a given protocol may have better solution
   for output than the ones given here. For example, the result of an
   operation that converts a URI to more than one URL may be encoded in
   a protocol-specific manner that conveys information about the
   closeness of each resource on the network.

   Thus, the requirements on encoding these operations within a given
   system are as follows:

      * which subset of the operations are allowed
      * how the operator is encoded
      * how the operands are encoded
      * how the error codes are returned

   The text/uri-list MIME Media Type is specified in Section 5. This
   Media Type is merely a suggestion for experimental systems that need
   a simple implementation. It is included here merely as an example to
   show completeness (however simple it may be).











Mealling & Daniel             Experimental                      [Page 4]

RFC 2483                URI Resolution Services             January 1999


4. The Incomplete Set

4.1 I2L (URI to URL)

      * Name: URI to URL
      * Mnemonic: I2L
      * Number of Operands: 1
      * Type of Each Operand: First operand is a URI.
      * Format of Each Operand: First operand is encoded as a URI.
      * Algorithm: Opaque
      * Output: One and only one URL
      * Errors Conditions:
           o Malformed URI
           o URI is syntactically valid but does not exist in any form.
           o URI exists but there is no available output from this
             operation.
           o URI existed in the past but nothing is currently known
             about it.
           o Access denied

      * Security Considerations:
           o Malicious Redirection
             One of the fundamental dangers related to any service such
             as this is that a malicious entry in a resolver's database
             will cause clients to resolve the URI into the wrong URL.
             The possible intent may be to cause the client to retrieve
             a resource containing fraudulent or damaging material.
           o Denial of Service
             By removing the URL to which the URI maps, a malicious
             intruder may remove the client's ability to retrieve the
             resource.

   This operation is used to map a single URI to a single URL. It is
   used by lightweight clients that do not have the ability to select
   from a list of URLs or understand a URC. The algorithm for this
   mapping is dependent on the URI scheme.

4.2 I2Ls (URI to URLs)

      * Name: URI to URLs
      * Mnemonic: I2LS
      * Number of Operands: 1
      * Type of Each Operand: First operand is a URI.
      * Format of Each Operand: First operand is encoded as a URI.
      * Algorithm: Opaque
      * Output: A list of zero or more URLs
      * Errors:
           o Malformed URI



Mealling & Daniel             Experimental                      [Page 5]

RFC 2483                URI Resolution Services             January 1999


           o URI is syntactically valid but does not exist in any form.
           o URI exists but there is no available output from this
             operation.
           o URI existed in the past but nothing is currently known
             about it.
           o Access denied
      * Security Considerations:
           o Malicious Redirection (see I2L)
           o Denial of Service (see I2L)

   This operation is used to map a single URI to 0 or more URLs. It is
   used by a client that can pick from a list of URLs based on some
   criteria that are important to the client. The client should not make
   any assumptions about the order of the URLs returned. No matter what

⌨️ 快捷键说明

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