先举一个例子,让大家对这三个名词又一个基本的概念:

1⃣️ ftp://ftp.is.co.za/rfc/rfc1808.txt

2⃣️ http://www.cnblogs.com/nods/p/8985322.html#position

上面列举了十分常见的两个网络地址,这两个地址都是 URI。

其中的 ftp://ftp.is.co.za/rfc/rfc1808.txt 和 http://www.cnblogs.com/nods/p/8985322.html 都是 URL。

其中的 ftp.is.co.za/rfc/rfc1808.txt 和 www.cnblogs.com/nods/p/8985322.html#position 是URN。

对于 2⃣️ 来说:

http:// 是协议 ( 文章最下方给出了常用的几种模式或协议 )。

www.cnblogs.com/nods/p/8985322.html 是网络资源的具体位置。

#position 则是资源。

那么简单的理解就是 URL 告诉你资源文件在网络上的具体位置,URN 告诉你资源在文件的什么地方。

URL 和 URN 都是 URI 的子集,以上的解释是十分简单通俗的解释。上面两个网络地址,都叫做 URI, 但URI 但表现形式并不单单只有上述两种,还有很多其他但形式。

URI 英文全称为 Uniform Resource Identifier(统一资源标识符),它是一个标准,而非定义具体但表现方式。

URL Uniform Resource Locator(统一资源定位符),它实际上是一个资源标识符,但更具体的,它定位了资源的位置。

URN Uniform Resource Name(统一资源命名),作为特定内容的唯一名称使用的,与当前资源的所在地无关。使用URN,就可以将资源四处迁移,而不用担心迁移后无法访问。P2P下载中使用的磁力链接是URN的一种实现,它可以持久化的标识一个BT资源,资源分布式的存储在P2P网络中,无需中心服务器用户即可找到并下载它。

关于这三者有专门的出处:

这三个缩略词是Tim Berners-Lee在一篇名为 RFC 3986: Uniform Resource Identifier (URI): Generic Syntax 的文档中定义的互联网标准追踪协议。

也可在 https://en.wikipedia.org/wiki/Uniform_Resource_Identifier 找到相关的来龙去脉。

通过下面的例子(源自 Wikipedia),我们可以很好地理解URN 和 URL之间的区别。如果是一个人,我们会想到他的姓名和住址。

URL类似于住址,它告诉你一种寻找目标的方式(在这个例子中,是通过街道地址找到一个人)。要知道,上述定义同时也是一个URI。

相对地,我们可以把一个人的名字看作是URN;因此可以用URN来唯一标识一个实体。由于可能存在同名(姓氏也相同)的情况,所以更准确地说,人名这个例子并不是十分恰当。更为恰当的是书籍的ISBN码和产品在系统内的序列号,尽管没有告诉你用什么方式或者到什么地方去找到目标,但是你有足够的信息来检索到它。

对于 web 前端来说,着重了解 URL,而其中的网络协议则是重中之重。

最常见的模式和协议如下:

  • http-超文本传输协议资源;
  • https-用安全套接字层传送的超文本传输协议;
  • ftp-文件传输协议;
  • mailto-电子邮件地址;
  • file-当地电脑或网上分享的文件;
  • telnet-telnet协议;
  • idap-轻型目录访问协议搜索;
  • news-Usenet新闻组;
  • gopher-Gopher协议。

最新文章

  1. ABP模块化
  2. NSValue&NSNumber
  3. php学习笔记:对文件的增删查改等操作
  4. java 面向对象编程--第十章 接口
  5. Symfony2 学习笔记之插件格式
  6. ajax中的post方法中回调函数不执行的问题
  7. crm操作权限
  8. 百度编辑器 UEditor第一次加载后台数据失败
  9. [翻译]欢迎来到 C# 7.1
  10. 关于使用Log4Net将日志插入oracle数据库中
  11. WPF自定义控件与样式-自定义按钮(Button)
  12. ChatGirl is an AI ChatBot based on TensorFlow Seq2Seq Model
  13. dll附加依赖项查看——dumpbin 命令
  14. C# 添加Word页眉、页脚和页码
  15. QTP自动化测试
  16. 浅谈Quartz定时任务调度
  17. GRNN/PNN:基于GRNN、PNN两神经网络实现并比较鸢尾花种类识别正确率、各个模型运行时间对比—Jason niu
  18. java 手动实现远程执行功能(深入理解java虚拟机)
  19. 洗礼灵魂,修炼python(28)--异常处理(2)—>运用异常
  20. es6基础(5)--数值扩展

热门文章

  1. 初识PHP之php运行流程及原理(一)
  2. 转的很好的前端html 内容
  3. python学习笔记02-编码
  4. JS优先队列排序。出队时,先找出优先级最高的元素,再按照先进先出出队。
  5. Mac下使用zsh不执行/etc/profile文件
  6. (转)Mysql技术内幕InnoDB存储引擎-表&索引算法和锁
  7. Netty核心概念(7)之Java线程池
  8. 使用epublib解析epub文件(章节内容、书籍菜单)
  9. mysql保留两位小数
  10. Beta阶段——Scrum 冲刺博客第二天