欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

URI和URL的比较和理解

程序员文章站 2024-02-14 16:18:04
...

URI和URL的比较和理解

一、简单区分

URI 是 Uniform Resource Identifier(统一资源标识符) 的缩写。

URL 是 Uniform Resource Locator (统一资源定位符)的缩写 。

URI 用字符串标识某一互联网资源,而 URL 表示资源的地点(互联网上所处的位置)。

可见,URL 是 URI 的子集。

形象的栗子:

  • 统一资源标识符 URI 就像一个人的身份证号
    • 身份证号123456
    • 通过这个字符串可以确定且仅能确定一个人
  • 统一资源定位符 URL 是像网购的地址+姓名
    • 住址协议://地球/中国/北京市/海淀区/某大学/某宿舍楼/某寝室/张三
    • 这个字符串同样标识出了唯一一个人,起到了URI的作用,同时还可以告诉我们怎样找到这个人

二、

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

  • Uniform

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

  • Resource

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

  • Identifier

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

我们知道URL是URI的子集,以下都是正确的 URI,那么哪些也是 URL呢?

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

答案是除了最后两个,都是URL。

为什么呢?

1、 URI 就是由某个协议方案表示的资源的定位标识符。协议方案是指访问资源所使用的协议类型名称。所有字符串均满足URI定义,都是正确的 URI

2、 URL 的主要格式为 <协议>:<协议特定部分>

常见协议有:

  • ftp:文件传输协议, File Transfer Protocol
  • http:超文本传输协议,HyperText Transfer Protocol
  • mailto:电子邮件
  • file:特定主机文件名

协议后面跟随冒号,特定协议部分的格式为:

  • <用户>:<密码>@<主机>:<端口号>/<路径>
  • <域名>/<路径>

依据URL格式定义,最后两个字符串不是URL