[HTTP]3.URI和URL


与 URI(统一资源标识符)相比,我们更熟悉 URL(Uniform Resource Locator,统一资源定位符)。URL 正是使用 Web 浏览器等访问 Web 页面时需要输入的网页地址。

1. URI


URI 是 Uniform Resource Identifier 的缩写。RFC2396 分别对这 3 个单 词进行了如下定义。

  • Uniform
    规定统一的格式可方便处理多种不同类型的资源,而不用根据上下文 环境来识别资源指定的访问方式。另外,加入新增的协议方案(如 http: 或 ftp:)也更容易。

  • Resource
    资源的定义是“可标识的任何东西”。除了文档文件、图像或服务(例 如当天的天气预报)等能够区别于其他类型的,全都可作为资源。另 外,资源不仅可以是单一的,也可以是多数的集合体。

  • Identifier
    表示可标识的对象。也称为标识符。

综上所述,URI 就是由某个协议方案表示的资源的定位标识符。协议方案是指访问资源所使用的协议类型名称。

采用 HTTP 协议时,协议方案就是 http。除此之外,还有 ftp、mailto、telnet、file 等。标准的 URI 协议方案有 30 种左右,由隶属于国际互联网资源管理的非营利社团 ICANN(Internet Corporation for Assigned Names and Numbers,互联网名称与数字地址分配机构)的 IANA(Internet Assigned Numbers Authority,互联网号码分配局)管理颁布。

URI 用字符串标识某一互联网资源,而 URL 表示资源的地点(互联网上所处的位置)。URL 是 URI 的子集。 “RFC3986:统一资源标识符(URI)通用语法”中列举了几种 URI 例 子,如下所示。

ftp://ftp.is.co.za/rfc/rfc1808.txt
http://www.ietf.org/rfc/rfc2396.txt
ldap://[2001:db8::7]/c=GB?objectClass?one
mailto:John.Doe@example.com
news:comp.infosystems.www.servers.unix
tel:+1-816-555-1212
telnet://192.0.2.16:80/
urn:oasis:names:specification:docbook:dtd:xml:4.1.2

2. URI 格式


表示指定的 URI,要使用涵盖全部必要信息的绝对 URI、绝对 URL 以 及相对 URL。相对 URL,是指从浏览器中基本 URI 处指定的 URL, 形如 /image/logo.gif。

以下是绝对 URI 格式。

使用 http: 或 https: 等协议方案名获取访问资源时要指定协议类型。不区分字母大小写,最后附一个冒号(:)。 也可使用 data: 或 javascript: 这类指定数据或脚本程序的方案名。

  • 登录信息(认证)
    指定用户名和密码作为从服务器端获取资源时必要的登录信息(身份认证)。此项是可选项。

  • 服务器地址
    使用绝对 URI 必须指定待访问的服务器地址。地址可以是类似 hackr.jp 这种 DNS 可解析的名称,或是 192.168.1.1 这类 IPv4 地址名,还可以是 [0:0:0:0:0:0:0:1] 这样用方括号括起来的 IPv6 地址名。

  • 服务器端口号
    指定服务器连接的网络端口号。此项也是可选项,若用户省略则自动使用默认端口号。

  • 带层次的文件路径
    指定服务器上的文件路径来定位特指的资源。这与 UNIX 系统的文件目录结构相似。

  • 查询字符串
    针对已指定的文件路径内的资源,可以使用查询字符串传入任意参数。此项可选。

  • 片段标识符
    使用片段标识符通常可标记出已获取资源中的子资源(文档内的某个 位置)。但在 RFC 中并没有明确规定其使用方法。该项也为可选项。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 组织:中国互动出版网(http://www.china-pub.com/) RFC文档中文翻译计划(http://...
    Palomar阅读 1,614评论 0 6
  • 最近难得有时间,可以看看平时经常用的牛逼的三方框架是怎么实现的,学习学习。比如okhttp ,眼下安卓开发 网络框...
    张哲1111阅读 1,270评论 0 1
  • 8. 方法定义(Method Definitions) 通用的HTTP/1.0的方法集将在下面定义,虽然该方法集可...
    Palomar阅读 3,259评论 0 2
  • (原话)谈谈对HTTP协议的理解:超文本传输协议,应用于OSI网络模型中的应用层,是用于服务器传输超文本到本地浏览...
    24_yu阅读 935评论 0 1
  • 昨天是清明节,回乡祭祖拜山再返回广州,大概是舟车劳累,昨晚感觉特别困,本想晚上再在简书上日更的,结果一不小心躺床上...
    曾猫猫阅读 358评论 0 5