URI和URL的区别

简介:

曾经我天真的以为URI和URL是一样的,只是不同叫法而已,然后某一天有人告诉我这两个不一样,so我发现是时候好好研究一下这两个概念了。

URI:Uniform Resource Identifier,统一资源标识符
URL:Uniform Resource Location统一资源定位符

它们有什么关系

URI是一个用于标识互联网资源名称的字符串。 该种标识允许用户对网络中(一般指万维网)的资源通过特定的协议进行交互操作。URI的最常见的形式是统一资源定位符(URL),经常指定为非正式的网址。更罕见的用法是统一资源名称(URN),其目的是通过提供一种途径。用于在特定的命名空间资源的标识,以补充网址。

通俗地说,URL和URN是URI的子集,URI属于URL更高层次的抽象,一种字符串文本标准。

三者关系如下图:

1240

图示

有什么区别

上面虽然大概介绍了这两者的区别,不过感觉还是有些模糊,下面着重研究区别。

首先,URI,是统一资源标识符,用来唯一的标识一个资源。而URL是统一资源定位器,它是一种具体的URI,即URL可以用来标识一个资源,而且还指明了如何locate这个资源。而URN,统一资源命名,是通过名字来标识资源,比如mailto:java-net@java.sun.com。也就是说,URI是以一种抽象的,高层次概念定义统一资源标识,而URL和URN则是具体的资源标识的方式。URL和URN都是一种URI;
URL是URI的一种(通过那个图就看的出来吧)。但也不是所有的URI都是URL哦,就好像蝴蝶都会飞,但会飞的可不都是蝴蝶啊!
让URI能成为URL的当然就是那个“访问机制”,“网络位置”。e.g. http://
or ftp://.。URN是唯一标识的一部分,就是一个特殊的名字。

下面就来看看例子吧,当来也是来自权威的RFC:

  • 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

这些全都是URI, 其中有些是URL. 哪些? 就是那些提供了访问机制的.

各自的组成

1. URI
Web上可用的每种资源如HTML文档、图像、视频片段、程序等都是一个来URI来定位的;
URI一般由三部组成

①访问资源的命名机制
②存放资源的主机名
③资源自身的名称,由路径表示,着重强调于资源。

2. URL
URL是Internet上用来描述信息资源的字符串,主要用在各种WWW客户程序和服务器程序上,特别是著名的Mosaic。
采用URL可以用一种统一的格式来描述各种信息资源,包括文件、服务器的地址和目录等。
URL一般由三部组成

①协议(或称为服务方式)②存有该资源的主机IP地址(有时也包括端口号)③主机资源的具体地址。如目录和文件名等

现在,你明白了了吗,欢迎提出意见和补充哦



本文转自 2012hjtwyf 51CTO博客,原文链接:http://blog.51cto.com/hujiangtao/1919699,如需转载请自行联系原作者

相关文章
|
网络协议 安全
|
10月前
|
存储 缓存 网络协议
计算机网络常见面试题(二):浏览器中输入URL返回页面过程、HTTP协议特点,GET、POST的区别,Cookie与Session
计算机网络常见面试题(二):浏览器中输入URL返回页面过程、HTTP协议特点、状态码、报文格式,GET、POST的区别,DNS的解析过程、数字证书、Cookie与Session,对称加密和非对称加密
|
前端开发 Java 应用服务中间件
配置SpringMVC的前端控制器DispatcherServlet时,<url-pattern>中“/“和“/*“的区别
配置SpringMVC的前端控制器DispatcherServlet时,<url-pattern>中“/“和“/*“的区别
128 0
|
XML 数据格式
蓝易云 - URI和URL和URN区别
总的来说,URI是一个广义的概念,包括URL和URN。URL提供了资源的位置信息,URN提供了资源的唯一名称。
130 2
|
JavaScript 前端开发 数据格式
URL编码【详解】——Javascript对URL进行编码解码的三种方式的区别和使用场景,axios请求拦截器中对get请求的参数全部进行URL编码
URL编码【详解】——Javascript对URL进行编码解码的三种方式的区别和使用场景,axios请求拦截器中对get请求的参数全部进行URL编码
723 0
|
数据安全/隐私保护
URI 和URL 的区别是什么?
URI 和URL 的区别是什么?
1354 0
|
自然语言处理
HTTP协议中 URI、URL、URN
HTTP协议中 URI、URL、URN
323 0
|
存储 缓存 网络协议
从输入URL到页面加载的全过程?隐藏元素有哪些方式,有什么区别?什么是内存泄漏?
1. 在浏览器地址栏输入url并回车 2. 浏览器查看是否有缓存,比较缓存是否过期,无缓存或过期则重新发起请求 3. DNS解析域名对应的IP 4. 根据IP建立TCP链接,即三次握手 5. 发送http请求 6. 服务器响应并返回结果 7. 关闭TCP链接,即四次挥手 8. 渲染页面,构建DOM树
|
12月前
|
前端开发 JavaScript
前端JS截取url上的参数
文章介绍了两种前端JS获取URL参数的方法:手动截取封装和使用URLSearchParams。
258 0

热门文章

最新文章