URL, URI 和 URN 之间的区别
英文原文:What's the difference between a URI and a URL?
URI 标识一个事物 , URL 定位一个事物;然而,位置同样可以标识一个事物,所以,每个
URL 都是一个 URI,但一个 URI 并不一定是一个 URL。
举例说明
- 罗杰·佩特
这是我的名字,这是一个标识。它就像一个 URI,但它不是一个 URL,因为,它不能告诉你任何关于我的位置或如何找到我的信息。在我说的这种情形中,这个名字在美国有可能指的是至少不同的 5 个人。
- 巴哈马国拿骚市西海岸街 4914 号
这是一个位置,它也是一个物理位置的标识。它既像一个 URL,也像一个 URI (因为所有的 URL 都是 URI),它能间接的标识我为“xxx 地的居民”。这种情形下,它可以唯一的标识我,但如果我有了一个室友,这种情况就会发生变化。
我说“像”,是因为,这两个例子在语法上是不符合要求的。
常见错误
来自维基百科:
在计算机科学里,URL (Uniform Resource Locator) 是 URI (Uniform Resource Identifier) 的子集,用来标识一个唯一有效的资源,人们可以通过它来获取这个资源。 在很多常见的使用方法里,在很多技术文档和口头讨论中,它通常被不正确的当成了 URI 的同义词…
因为这种常见的混淆,很多产品和文档中本来应该使用这个时却错误的使用了那个,他们按自己的理解来使用这些术语,或者把它们等同对待。
URN
我的名字,罗杰·佩特,类似于一个 URN ,不同的是 URN更有规则,特意用来表示即在空间上又在时间上的唯一性。
因为我的名字很可能和其他人重名,它并不是全球唯一的,不适合做 URN。然而,即使是没有其他家庭使用这个名字,但我的名字是从祖上继承下来的,所以它在时间范围里仍然不能唯一。即使我的名字跟祖上不一样,但我的后代也可能使用这个名字,它仍然不适合作为一个 URN。
URN 在严格的唯一性约束方面有别于 URL,但它们却都是使用相同的 URI 语法。
http://kb.cnblogs.com/page/135029/
附录:
URI:Uniform Resource Identifier,统一资源标识符;
URL:Uniform Resource Locator,统一资源定位符;
URN:Uniform Resource Name,统一资源名称。
其中,URL,URN是URI的子集。
Web上地址的基本形式是URI,它代表统一资源标识符。有两种形式:
URL:目前URI的最普遍形式就是无处不在的URL或统一资源定位器。
URN:URL的一种更新形式,统一资源名称(URN, Uniform Resource Name)不依赖于位置,并且有可能减少失效连接的个数。但是其流行还需假以时日,因为它需要更精密软件的支持。
URI是以某种统一的(标准化的)方式标识资源的简单字符串。
URI一般由三部分组成:
1. 访问资源的命名机制。
2. 存放资源的主机名。
3. 资源自身的名称,由路径表示。
URL, URI 和 URN 之间的区别的更多相关文章
- URL、URI、URN之间的区别
URL统一资源定位符 URI统一资源标识符 URN统一资源名称 URL是URI的一个特例. URI由URL和URN两部分组成. 在java类中,URI类不包含任何访问资源的方法,它唯一的作用就是解析. ...
- URL,URI和URN的理解
我想很多人和我一样弄不清楚URI和URL之间的区别,有人可能觉得这是统一概念的不同表述而已. 我们先看看定义: URI:Uniform Resource Identifier,即统一资源标志符,用来唯 ...
- 什么是URL,URI或URN?
什么是URI? 每个Web服务器资源都有一个名字,这样客户端就可以说明它们感兴趣的资源是什么了. 服务器资源名被称为统一资源标识符(Uniform Resource Identifier, URI). ...
- URI、URL和URN之间的区别与联系
URI:Uniform Resource Identifier,统一资源标识符: URL:Uniform Resource Locator,统一资源定位符: URN:Uniform Resource ...
- URI、URL和URN之间的区别
URI标识一个事物,URL定位一个事物:然而,位置同样可以标识一个事物,所以,每个URL都是一个 URI,但一个URI并不一定是一个URL. 举例说明 罗杰·佩特 这是我的名字,这是一个标识.它就像一 ...
- URI和URL之间的区别
URI的全称为统一资源标识符(Uniform Resource Identifier),是一个用于标识某一互联网资源名称的字符串. 该种标识允许用户对任何(包括本地和互联网)的资源通过特定的协议进行交 ...
- URL与URI与URN的区别与联系
1.什么是URL? 统一资源定位符(或称统一资源定位器/定位地址.URL地址等[1],英语:Uniform Resource Locator,常缩写为URL),有时也被俗称为网页地址(网址).如同在网 ...
- URI与URN与URL详解
当没有URI时 什么是URI和URN和URL URI详解 Uniform Resource Identifier 统一资源标识符 URI的组成 案例: https://tools.ietf.org/h ...
- PHP $_SERVER['PHP_SELF']、$_SERVER['SCRIPT_NAME'] 与 $_SERVER['REQUEST_URI'] 之间的区别
PHP $_SERVER['PHP_SELF'].$_SERVER['SCRIPT_NAME'] 与 $_SERVER['REQUEST_URI'] $_SERVER['PHP_SELF'].$_SE ...
- [转]ExtJs基础--Html DOM、Ext Element及Component三者之间的区别
要学习及应用好Ext框架,必须需要理解Html DOM.Ext Element及Component三者之间的区别. 每一个HTML页面都有一个层次分明的DOM树模型,浏览器中的所有内容都有相应的DOM ...
随机推荐
- vue基本操作[上] 续更----让世界感知你的存在
Vue引用js文件的多种方式 1.vue-cli webpack全局引入jquery (1)首先 npm install jquery --save (--save 的意思是将模块安装到项目目录下,并 ...
- docker安装8版本elasticsearch遇到的问题FileSystemException
docker安装8版本elasticsearch遇到的问题 Exception in thread "main" java.nio.file.FileSystemException ...
- Object.equals 和 String.equals的区别
一. 源码展示: 1. Object.equals: ①引用类型地址值比较,直接返回结果:true || false public class Object { public boolean equ ...
- 【WebGL系列-01】获取WebGL上下文
获取WebGL上下文 获取上下文 WebGL上下文是从<canvas>标签中获取到的,通过canvas对象的getContext()函数可以获取WebGLRenderingContext. ...
- Angular: 点击一次按钮,增加一个元素
解决方案 思路 在组件的typesscript文件中,创建一个数组来存储每个按钮的信息 在模板中使用 *ngFor 指令来循环渲染按钮列表 在按钮事件的处理函数中,每次点击按钮时向按钮数组添加一个新的 ...
- .NET ORM 鉴别器 和 TDengine 使用 -SqlSugar
SqlSugar ORM SqlSugar 是一款 老牌 .NET 开源多库架构ORM框架 ,一套代码能支持多种数据库像像Admin.net.Blog.Core.CoreShop等知名开源项目都采用了 ...
- 基于weave实现docker跨主机网络通信
前言 IP: 192.168.0.10 192.168.0.11 系统版本:centos 7 weave版本:2.8.1,下载地址:https://git.io/weave docker版本:18.0 ...
- 如何在linux上安装neovim0.9(以debian和ubuntu为例) – 东凭渭水流
发布于 1 分钟前 3 次阅读 由于apt中只有neovim-0.72的安装包.想使用新版需要自己安装,以下是安装过程 1.首先需要卸载旧版neovim sudo remove neovim 2.从 ...
- SpringBoot 测试实践 - 3:@MockBean、@SpyBean 、提升测试运行速度、Testcontainer
编写测试的时候,我们必须保证外部依赖行为一致,也需要模拟一些边界条件,所以我们需要使用 Mock 来模拟对象的行为.SpringBoot 提供了 @MockBean 和 @SpyBean 注解,可以方 ...
- 《SQL与数据库基础》11. 索引
目录 索引 概述 结构 B-Tree B+Tree Hash 思考 分类 语法 SQL性能分析 SQL执行频率 慢查询日志 profile详情 explain执行计划 索引失效情况 范围查询 索引列运 ...