名词解释:

URI (uniform resource identifier) 统一资源标志符;
URL(uniform resource location ) 统一资源定位符(或统一资源定位器);
URN(uniform resource name ) 统一资源命名。

URN和URL是URI的子集

背景

有很多经典的技术争论,而如何正确的称呼web地址是最难以区分的问题之一,比如: 某人说:给我个URL,这个时候另外一位”高人”会跳出来纠正:其实这叫URI,不是URL.

从官方描述开始

通览一下RFC及wikipedia 的官方描述:

A Uniform Resource Identifier (URI) is a compact sequence of characters that identifies an abstract or physical resource.

URI是一组紧凑的字符序列,用来唯一标识一个抽象或者实际的资源

A URI can be further classified as a locator, a name, or both. The term “Uniform Resource Locator” (URL) refers to the subset of URIs that, in addition to identifying a resource, provide a means of locating the resource by describing its primary access mechanism (e.g., its network “location”)

URI更细致的分类的话,有多种具体形式,locator, 一个名称,或者二者皆包括, URL 是URI的子集,但是为了进一步定位一个资源,URL借助定义资源的访问机制来提供一种资源定位的方式,比如网络资源位置

One can classify URIs as locators (URLs), or as names (URNs), or as both. A Uniform Resource Name (URN) functions like a person’s name, while a Uniform Resource Locator (URL) resembles that person’s street address. In other words: the URN defines an item’s identity, while the URL provides a method for finding it.

一个URI可以归为URL 或者 URN,有的URL即是URL也是URN,类比一下 URN更像是一个人的名字,而URL则类似某个人所在的具体位置。再换个角度来说,URN定义了资源的唯一标识符,而URL则提供了如何找到该资源的方法。

由上描述可知

1.一个URI之所以是URL的关键就是: 指定了 “访问机制”或 “网络地址”比如出现“http://”或者 “ftp://”
2.URN是指 资源的唯一的名称。

看看例子

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

再强调一下,什么是URL ,就是告诉你”如何去找到他们”

那如何根据给出的URI正确的称呼呢?

这取决于一个条件:就是所给出的一个URI是完整,抑或只是一部分。
比如:你需要的一个文件位于files.hp.com,这就是一个URI,非URL,访问协议及端口都没有。http://files.hp.com 则是一个URL.

结论

叫URI永远没错,但并不是最精确

  • 关于某个资源,仅仅只有名称或者某些不完整信息,那么称呼URI
  • 但如果即给出了资源名称又提供了访问资源的方法,那么称呼URL更精确。

URI 是定位符,它可以是名称,位置信息,也可能二者兼备

URN,URL是URI,反之则不对

之所以为URL 是因为提供了资源名称及资源访问方法

参考

https://danielmiessler.com/study/url-uri/

【网络基础】URI 和 URL 的纠缠相关推荐

  1. (chap1 web网络基础) URI和URL

    1. URL (UniformResource Locator)统一资源定位符 URL正是使用Web浏览器等访问Web页面时需要输入的网页地址. 2. URI(Uniform Resource Ide ...

  2. JAVA基础 - URI、URL和URN的区别

    什么是URI(统一资源标识符)? "A Uniform Resource Identifier (URI) 是一个紧凑的字符串用来标识抽象或物理资源." 用于标识一个抽象或物理资源 ...

  3. 拦截锚点修改url_前端系列课程(2)-网络基础概念(URL)

    [1] IP 地址(internet protocol address) IP 地址,是设备在某一个网络中的地址,常见格式为:[0~255].[0~255].[0~255].[0~255],即四个 0 ...

  4. Java网络编程详解——网络基础知识介绍、IP和端口介绍、URL和URLConnection介绍

    网络基础知识--计算机网络介绍.通信协议与网络结构模型 一. 计算机网络就是把分布在不同地理区域的计算机与专门的外部设备,用通信线路互连成一个网络系统,从而使众多的计算机可以互相传递信息,共享资源. ...

  5. Java网络编程(网络基础(IP端口号网络通信协议)、TCP编程、UDP编程和URL编程原理以及常用方法的实例)

    网络编程 网络基础概述 计算机网络:   把分布在不同地理区域的计算机与专门的外部设备用通信线路互连成一个规模大.功能强的网络系统,从而使众多的计算机可以方便地互相传递信息.共享硬件.软件.数据信息等 ...

  6. HTTP精简教程一:Web网络基础

    使用 HTTP 协议访问 Web Web浏览器根据地址栏中制定的 URL 从 Web 服务器获取文件资源(resource)等信息,从而显示出Web页面. 超文本传输协议(HTTP,HyperText ...

  7. Web的诞生和网络基础 | 读《图解HTTP》

    当今互联网的由来 蒂姆·伯纳斯·李在1989年的时候提出一种设想,借助多文档之间的相互关联形成的超文本(HyperText),连成可相互参阅的WWW(World wide web,万维网). 对于这个 ...

  8. 《图解HTTP》读书笔记--第1章 了解Web及网络基础

    写在前面:本文仅供个人学习使用,如有侵权,请联系删除.文章中所用图片绝大多数来源于<图解HTTP>,请读者支持原版. 文章目录 第1章 了解Web及网络基础 1.1 使用HTTP协议访问W ...

  9. Java魔法堂:URI、URL(含URL Protocol Handler)和URN

    转载自   Java魔法堂:URI.URL(含URL Protocol Handler)和URN 一.前言 过去一直搞不清什么是URI什么是URL,现在是时候好好弄清楚它们了!本文作为学习笔记,以便日 ...

最新文章

  1. win7与ubuntu 13.04 64位双系统安装介绍
  2. hihoCoder 1578 Visiting Peking University 【贪心】 (ACM-ICPC国际大学生程序设计竞赛北京赛区(2017)网络赛)...
  3. 在Windows QT下使用ZeroMQ
  4. zookeeper源码分析之二客户端启动
  5. Docker远程TLS管理
  6. abnf java实现_详细讲解如何利用Java实现组合式解析器?
  7. java 开发人员工具_Java开发人员应该知道的5种错误跟踪工具
  8. 使用ORM提取数据很容易! 是吗?
  9. Matlab之正态拟合直方图绘制函数histfit
  10. 淘宝运营到底是做什么的?
  11. Java软件开发工程师简历模板包装教学问题完整版 【心静思远-9527】
  12. C#开发工控上位机编程 csdn_PLC部件分配编程PLC扩展如何编程
  13. 操作手册与用户手册的区别
  14. JAVA数组常见例题(转置,排序,求和平均,插入,删除)
  15. AutoCAD Civil 3D笔记
  16. actor 模型原理 (二)
  17. 笔记本电脑用久了卡顿解决方法
  18. 14 Tornado - XSRF
  19. cpu性能测试软件 国际象棋,CPU性能评测软件
  20. idea中tomcat项目修改Module名之后修改配置信息

热门文章

  1. php发送指令,PHP发送AT指令实例代码
  2. iOS沙盒路径及路径下数据的存储和读取
  3. viewpage的使用
  4. [詹兴致矩阵论习题参考解答]习题6.6
  5. 错误:无法作为数据库主体执行,因为主体 dbo 不存在、无法模拟这种类型的主体,或您没有所需的权限...
  6. 16个Linux服务器监控命令
  7. QluOJ2018NewCode计算几何(寄蒜几盒)
  8. 天地图,js 4.0 api,简单调用,高手请绕行
  9. Python之几种常用模块
  10. 【BZOJ1085】【SCOI2005】骑士精神 [A*搜索]