URI 和 URL 有什么区别?

246 阅读2分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第1天,点击查看活动详情

在某些情况下,URI 和 URL 可以互换使用。在大多数情况下,没有问题,但两者之间的差异恰恰是存在的。因此,让我们看一下每个术语的定义和用法。

URI

URI表示标识特定资源的统一资源标识符。标识 Web 技术使用的逻辑或物理资源的唯一字符串序列。

URL

URL,也称为Web地址,是用于指示资源在计算机网络上的位置的约定,是URI 的子集。

虽然 URL 是 URI 的子集,但 URI 和 URL 的主要区别如下:

URI被识别,URL被指定位置。

下面是一个来自现实世界的例子:

“wuzhuoyu” 是我的名字标识符。它就像一个 URI,但它不能是 URL,因为它没有关于位置或联系方式的信息描述。

“某某省某某市某某区” 是地址。一个地址指向一个特定的位置。与 URL 和 URI 类似,它们间接识别您的位置。

实际网络中的 URI 和 URL 示例如下。

  1. www.wuzhuoyu.com/index.html -------> 服务器实际index.html文件

  2. www.wuzhuoyu.com/index -------> rewrite -------> 服务器实际index.html文件

两个地址都指向 index.html。

第一个地址既是 URI 又是 URL,因为它是指示 Web 服务器的实际文件位置的地址。
第二个地址实际上不是 URL,因为 Web 服务器上不存在索引文件。但是,它可以被视为一个 URI,因为它是在服务器内部进行处理并最终指向 index.html。

URI结构

通用 URI 具有以下形式。

方案:[//[user[:password]@]host[:port]][/path][?query][#fragment]
  1. scheme:表示要使用的协议,在web中是http或者https
  2. 用户和密码:访问数据的用户名和密码(在服务器上)
  3. 主机和端口:要访问的目标(服务器)的主机名和端口号
  4. path :要访问的目标(服务器)路径的详细信息
  5. query :要传递给要访问的目标的附加信息(参数)
  6. 片段:访问主资源中存在的子资源时要识别的信息