URI和URL的概念和区别

3,591 阅读4分钟

这是我参与8月更文挑战的第4天,活动详情查看:8月更文挑战

本文介绍了URI和URL的概念和区别。

1 URI统一资源标识符

URI(Uniform Resource Identifier)翻译成中文就是统一资源标识符。RFC2396 分别对这 3 个单词进行了如下定义:

  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,互联网号码分配局)管理颁布。

URI可以分为如下几个部分:

在这里插入图片描述

  1. URI:Universal Resource Identifier,统一资源标识符:
    1. URI是一个用来标识抽象或物理资源的紧凑字符串,通过这个标识可以访问一个唯一的资源。
    2. 这里的“资源”表示的是web上每一种可用的资源,如HTML文档、图像、视频片段、程序等,它们可以都由唯一的一个URI字符串进行标识,具体的标识规则由我们自己确定。放到现实中,资源可以类比一个独一无二的人、动物、物体,而URI类似于身份证或者DNA(反正是要独一无二的,它可以使任何规则)。
  2. URL:Universal Resource Locator,统一资源定位符
    1. URL一个通过位置来标识资源的字符串,是目前网络资源的主要访问机制的。
    2. 一个标准的URL必须包括:protocol、host、port、path、parameter、anchor,例如,动物住址协议://地球/中国/浙江省/杭州市/西湖区/某大学/14号宿舍楼/525号寝/张三.人,这样通过该资源的位置可以以定位该资源。
    3. 可以看出来,URL是通过位置来确定一个资源的,因此URL是URI的子集,或者说URL是URI的一种实现方式!
  3. URN:Universal Resource Name ,统一资源名称。
    1. 通过特定命名空间中的唯一名称或ID来标识资源。上面说的身份证、DNA就是类似于URN。

2 URL统一资源定位符

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

URL是一种具体的URI,它是URI的一个子集,它不仅唯一标识资源,而且还提供了定位该资源的信息。相对URL,是指从浏览器中基本URI处指定的URL。

对人来说,现实当中名字当然是会重复的,所以身份证号才是URI(也可以叫URN),通过身份证号能让我们能且仅能确定一个人。URI(URN)相当于每个人的身份证号码123456789,URL就是快递员根据地址找到你,如下:

动物住址协议://地球/中国/浙江省/杭州市/西湖区/某大学/14号宿舍楼/525号寝/张三.人。

可以看到,这个字符串同样标识出了唯一的一个人,起到了URI的作用,所以URL是URI的子集。URL是以描述人的位置来唯一确定一个人的。

所以不论是用定位的方式还是用编号的方式,我们都可以唯一确定一个人,都是URl的一种实现,而URL就是用定位的方式实现的URI。

如有需要交流,或者文章有误,请直接留言。另外希望点赞、收藏、关注,我将不间断更新各种Java学习博客!