RFC3986

来自Jabber/XMPP中文翻译计划
(版本间的差异)
跳转到: 导航, 搜索
(URIs概述)
(通用语法)
第70行: 第70行:
  
 
====通用语法====
 
====通用语法====
 +
 +
每个URI开始于一个scheme名, 如[[RFC3986#Scheme|3.1]]所定义的, 那代表一个该scheme赋予该标识符的协议. 就其本身而言, URI语法是他一个联合的可扩展的命名系统,每个scheme的协议可以进一步限制使用那个scheme的标识符的语法和语义.
 +
 +
本协议定义了那些所有URI schemes或很多常用的URI schemes需要URI语法的元素. It
 +
  thus defines the syntax and semantics needed to implement a scheme-
 +
  independent parsing mechanism for URI references, by which the
 +
  scheme-dependent handling of a URI can be postponed until the
 +
  scheme-dependent semantics are needed.  Likewise, protocols and data
 +
  formats that make use of URI references can refer to this
 +
  specification as a definition for the range of syntax allowed for all
 +
  URIs, including those schemes that have yet to be defined.  This
 +
  decouples the evolution of identification schemes from the evolution
 +
  of protocols, data formats, and implementations that make use of
 +
  URIs.
 +
 +
  A parser of the generic URI syntax can parse any URI reference into
 +
  its major components.  Once the scheme is determined, further
 +
  scheme-specific parsing can be performed on the components.  In other
 +
  words, the URI generic syntax is a superset of the syntax of all URI
 +
  schemes.
 +
 
====例子====
 
====例子====
 
====URI, URL, 和URN====
 
====URI, URL, 和URN====

2013年8月15日 (四) 04:18的版本


本文的英文原文来自Uniform Resource Identifier (URI): Generic Syntax

被更新: 6874 标准
存在勘误表
网络工作组 T. Berners-Lee
申请讨论: 3986 W3C/MIT
STD: 66 R. Fielding
更新: 1738 Day Software
取代: 2732 2396 1808 L. Masinter
类别: 标准跟踪 Adobe Systems
2005年1月
统一资源标识符(URI):通用语法

本文的状态

本文为互联网社区指定了一个互联网标准跟踪协议, 并为改进它而请求讨论和建议. 关于标准化状态和本协议的状态请参考当前版本的 "互联网官方协议标准" (STD 1). 本文不受限制分发.


版权声明

Copyright (C) The Internet Society (2005).

摘要

一个统一资源标识符(URI)是一个字符的紧凑序列,用来标识一个抽象或物理资源. 本协议定义了通用的URI语法和一个解析相应格式URI引用的过程, 以及在互联网上使用URIs的指南和安全事项. URI语法定义了所有合法的URIs的一个超集的语法, 允许一个实现来解析一个URI引用的常用部件而不需要知道每个可能的标识符的scheme特有的需求. 本协议不为URIs定义现成的语法; 那个任务由每个URI scheme的个体的协议来执行.

目录

绪论

一个统一资源标识符(URI)为识别一个资源而提供一个简单的可扩展含义. 本协议的URI语法和语义衍生于万维网全局信息倡议所引入的概念, 这些标识符的使用从1990年就开始了并且在 "WWW中的统一资源标识符" RFC1630 中描述了它们. 语法的设计满足了 "互联网资源定位器功能建议" RFC1736 和 "统一资源名称功能需求" RFC1737 提出的建议.

本文取代了 RFC2396, 它融合了 "统一资源定位器" RFC1738 和 "相对统一资源定位器" RFC1808 以为所有URIs定义一个单一, 通用的语法. 它取代了 RFC2732, 该协议引入了用于IPv6地址的语法. 它排除了RFC 1738中定义了个别URI schemes的特有语法的部分; 那些部分将被更新到独立的文档中. 新URI schemes的注册过程被独立地定义在 BCP35. 给新URI schemes设计者的建议可以在 RFC2718 找到. 所有从 RFC 2396 而来的显著变更都备注在 附录D. RFC 2396以来的变更

本协议遵循 BCP19 提供的建议使用术语 "character" 和 "coded character set" , 并且以 "character encoding" 来取代 BCP19 中所指的 "charset".

URIs概述

URIs的特征如下:

统一

统一性提供了很多好处. 它允许不同类型的资源标识符被用在相同的上下文中, 即使当访问那些资源使用的机制不同的时候. 它允许跨越资源标识符的不同类型的常用语法习惯拥有统一的语义解释. 它允许引入新类型的资源标识符而不妨碍现有标识符的使用. 他允许标识符被重用于不同的上下文, 从而允许新的应用或协议支持一个早已存在的, 大的, 和广泛的资源标识符的集合.

资源

本协议不限制能成为一个资源的范围; 相反, 术语 "resource" 被用于一般意义上的任何可以由URI标识的东西. 熟悉的例子包括一个电子文档, 一个图片, 一个包含一致的目的的信息源(例如, "洛杉矶今日天气"), 一个服务(例如, 一个 HTTP 到 短信 的网关), 以及一个其他资源的集合. 通过互联网来访问一个资源不是必需的; 例如, 自然人, 组织, 以及在一个图书馆内的限定的书也可能成为资源. 同样的, 抽象概念能成为资源, 类似一个数学方程式的运算符和操作数, 关系的类型(例如, "父母" 或 "雇员"), 或数值(例如, 0, 1, 以及 无穷大).
标识符
一个标识符包含如何在身份识别的范围中从其他事物区分出被标识的事物的信息. 我们使用术语 "identify" 和 "identifying" (识别)来指代从其他资源区分出一个资源的行动, 不管那个行为是如何完成的(例如, 通过名称, 地址, 或上下文). 这些术语不应错误地假定一个标识符定义或包含的身份所指的事物, 尽管对某些标识符来会发生这种情况. 不应假定一个使用URIs的系统将成功访问所标识的资源: 在很多情况下, URIs被用于指示资源而没有让任何它们被访问的意图. 同样的, "一个" 资源可能并不自然地标识单数(例如, 一个资源可以是一个被命名的组合或一个随时间变化的映射).

一个URI是一个标识符,包含了一系列字符,匹配第三章中<URI>命名的语法规则. 它使得通过独立定义命名的Scheme3.1的可扩展组合来表达资源的统一身份成为可能. 那个身份如何被实现, 被指定, 或被允许取决于每个scheme协议.

本协议没有对一个资源的性质做任何限制, 原因是一个应用可能专注于一个资源, 其他各种系统可能把URIs用来标识多个资源. 本协议不要求一个URI随着时间变化而坚持标识相同资源, 尽管那是所有URI schemes的一个常见目标. 不过, 本协议没有任何东西阻止一个应用把自己限制到特有的资源类型, 或由那个应用维护的具有其期望特性的URIs的一个子集.

URIs有一个全局范围并且对它的一致性解释和上下文无关, 即使那个解释的结果可能和最终用户的上下文产生关系. 例如, "http://localhost/" 对于涉及的每个用户有相同的解释, 即使相当于 "localhost" 的网络接口对每个最终用户可以是不同的: 解释独立于访问. 无论如何, 在那个引用的基础上所做的一个动作将和该最终用户的上下文发生关系, 这暗示一个旨在涉及一个全局唯一的事物的动作必须使用URI来把那个资源从所有其他事物中区分出来. 识别该最终用户的本地上下文的URIs只应该在该上下文本身是该资源的定义的一部分的时候使用, 类似当一个在线帮助手册指向一个位于该最终用户的文件系统上的一个文件(例如, "file:///etc/hosts").

通用语法

每个URI开始于一个scheme名, 如3.1所定义的, 那代表一个该scheme赋予该标识符的协议. 就其本身而言, URI语法是他一个联合的可扩展的命名系统,每个scheme的协议可以进一步限制使用那个scheme的标识符的语法和语义.

本协议定义了那些所有URI schemes或很多常用的URI schemes需要URI语法的元素. It

  thus defines the syntax and semantics needed to implement a scheme-
  independent parsing mechanism for URI references, by which the
  scheme-dependent handling of a URI can be postponed until the
  scheme-dependent semantics are needed.  Likewise, protocols and data
  formats that make use of URI references can refer to this
  specification as a definition for the range of syntax allowed for all
  URIs, including those schemes that have yet to be defined.  This
  decouples the evolution of identification schemes from the evolution
  of protocols, data formats, and implementations that make use of
  URIs.
  A parser of the generic URI syntax can parse any URI reference into
  its major components.  Once the scheme is determined, further
  scheme-specific parsing can be performed on the components.  In other
  words, the URI generic syntax is a superset of the syntax of all URI
  schemes.

例子

URI, URL, 和URN

设计事项

转录

从交互分离身份

层次标识符

个人工具