2 URI 和 URL
URI(Uniform Resource Identifier,统一资源标识符)
URL(Uniform Resource Locator,统一资源定位符)
1 统一资源标识符 URI
RFC 2396 分别对这三个单词进行了如下定义:
(1)Uniform
规定统一的格式可方便处理多种不同类型的资源, 而不用根据上下文环境来识别资源指定的访问方式。 另外, 加入新增的协议方案(如http: 或 ftp:) 也更容易。
(2)Resource
资源的定义是“可标识的任何东西”。 除了文档文件、 图像或服务(例如当天的天气预报) 等能够区别于其他类型的, 全都可作为资源。 另外, 资源不仅可以是单一的, 也可以是多数的集合体。
(3)Identifier
表示可标识的对象。 也称为标识符。
综上所述, URI 就是由某个协议方案表示的资源的定位标识符。 协议方案是指访问资源所使用的协议类型名称。
采用 HTTP 协议时, 协议方案就是 http。
除此之外, 还有 ftp、mailto、 telnet、 file 等。
标准的 URI 协议方案有 30 种左右, 由隶属于国际互联网资源管理的非营利社团 ICANN(Internet Corporation for Assigned Names and Numbers, 互联网名称与数字地址分配机构) 的 IANA(Internet Assigned Numbers Authority, 互联网号码分配局) 管理颁布。
2 URI 与 URL 区别
URI 用字符串标识某一互联网资源, 而 URL表示资源的地点(互联网上所处的位置) 。
URL是 URI 的子集。
通俗理解:
假设所有的 Html 文档都有唯一的编号,记作 html:xxxxx,xxxxx 是一串数字,即 Html 文档的身份证号码,这个能唯一标识一个 Html 文档,那么这个号码就是一个 URI。
而 URL 则通过描述是哪个主机上哪个路径上的文件来唯一确定一个资源,也就是定位的方式来实现的 URI。
3 绝对 URI 格式
(1)协议方案名
使用 http: 或 https: 等协议方案名获取访问资源时要指定协议类型。 不区分字母大小写, 最后附一个冒号(:) 。也可使用 data: 或 javascript: 这类指定数据或脚本程序的方案名。
(2)登录信息(认证)
指定用户名和密码作为从服务器端获取资源时必要的登录信息(身份认证) 。 此项是可选项。
(3)服务器地址
使用绝对 URI 必须指定待访问的服务器地址。 地址可以是类似 hackr.jp 这种 DNS 可解析的名称, 或是 192.168.1.1 这类 IPv4 地址名, 还可以是 [0:0:0:0:0:0:0:1] 这样用方括号括起来的 IPv6 地址名。
(4)服务器端口号
指定服务器连接的网络端口号。 此项也是可选项, 若用户省略则自动使用默认端口号。
(5)带层次的文件路径
指定服务器上的文件路径来定位特指的资源。 这与 UNIX 系统的文件目录结构相似。
(6)查询字符串
针对已指定的文件路径内的资源, 可以使用查询字符串传入任意参数。 此项可选。
(7)片段标识符
使用片段标识符通常可标记出已获取资源中的子资源(文档内的某个位置) 。 但在 RFC 中并没有明确规定其使用方法。 该项也为可选项。