我想很多人和我一样弄不清楚URI和URL之间的区别,有人可能觉得这是统一概念的不同表述而已。

我们先看看定义:

URI:Uniform Resource Identifier,即统一资源标志符,用来唯一的标识一个资源。

URL:Uniform Resource Locator,统一资源定位符。即URL可以用来标识一个资源,而且还指明了如何locate这个资源。

URN:Uniform Resource Name,统一资源命名。即通过名字来表示资源的。

  好了定义看完了,可能还是不理解下面我们就详细说说三者的区别和用途。

URL肯定是一个URI,但是一个URI并不一定是一个URL,URL仅仅是URI的一种表现形式而已。两者的差距主要可以从命名上来区分,URI是资源标志符,所有他只要求具有"标识性",而URL是和URI的主要区别就是,URL除了具有URI的“标识性”以外,还具有定位功能,可以用来描述资源的具体位置,还指明了获取资源所采用的协议。一个完整的URL包含协议名称,主机名称(IP或者域名)、端口号(没写端口号默认 为80端口)、路径和查询字符串这5个部分。比如:http://www.microsoft.com:80/images/hello.png?type=png.这样一个url,上述的5个部分分别是:网络传输协议名称:http,主机:www.mcrosoft.com,端口号:80,路径:images/hello.png 查询字符串:type=png。

  看完了URL和URI的区别,我们在看看URN是什么东西。URN也是URL的一种表现形式,它和URL的区别就是与资源的位置无关,正式由于位置的无关性,被某个URN标识的资源在位置发生变化时,其URI可以保持不变。

  所以看来URL和URN都是URI的一种扩展,一种表现形式,URL和URN肯定是一个URI,但是URI不一定是URN或URL。

URL,URI和URN的理解的更多相关文章

  1. 什么是URL,URI或URN?

    什么是URI? 每个Web服务器资源都有一个名字,这样客户端就可以说明它们感兴趣的资源是什么了. 服务器资源名被称为统一资源标识符(Uniform Resource Identifier, URI). ...

  2. URI与URN与URL详解

    当没有URI时 什么是URI和URN和URL URI详解 Uniform Resource Identifier 统一资源标识符 URI的组成 案例: https://tools.ietf.org/h ...

  3. URL与URI与URN的区别与联系

    1.什么是URL? 统一资源定位符(或称统一资源定位器/定位地址.URL地址等[1],英语:Uniform Resource Locator,常缩写为URL),有时也被俗称为网页地址(网址).如同在网 ...

  4. web应用 http 响应 url uri

    动态web  应用结构 WEB-INF --classes --lib web.xml     响应:   url   uri

  5. 【HTML/XML 12】URI、URN、URL的联系和区别

    导读:在学习XML的时候,书中有很多个地方都提到URL等几个概念,再之前做项目的时候,重定向或是转发时,也用到了这个URL,在学习Ajax时,ajax破坏了统一资源定位(URN)都或多或少的接触到了这 ...

  6. URL、URI和URN三者之间的区别

    URI   统一资源标识符 Uniform Resource Identifier URL      统一资源定位符     Uniform Resource Locator URN     统一资源 ...

  7. URL, URI, URN三者区别

    URL和URN都是URI的子集 URL和URN都是URI,但是URI不一定是URL或者URN URI,URL,URN关系图 关于URL: URL是URI的一种,不仅标识了Web 资源,还指定了操作或者 ...

  8. URL URI URN的区别

    下面这张图可以完美的解释他们三者之间的关系 URI包含URL和URN Uniform Resource Identifier :统一资源标志符,用于标识某一互联网资源 Uniform Resoutce ...

  9. URL、URI、URN之间的区别

    URL统一资源定位符 URI统一资源标识符 URN统一资源名称 URL是URI的一个特例. URI由URL和URN两部分组成. 在java类中,URI类不包含任何访问资源的方法,它唯一的作用就是解析. ...

随机推荐

  1. Backbone源码解析(一):Event模块

    Backbone是一个当下比较流行的MVC框架.它主要分为以下几个模块: Events, View, Model, Collection, History, Router等几大模块.它强制依赖unde ...

  2. 在英文版操作系统中安装的MS SQL server,中文字段无法匹配

    在英文版的操作系统中安装的MS SQL server,会出现中文字段无法被匹配到.其原因在于英文环境下安装的MS SQL server的排序规则不包括中文. 所以解决办法就是更改MS SQL serv ...

  3. Unity3D热更新全书-脚本(五) NGUI

    让我们实际的研究一下如何将NGUI和C#LightEvil结合起来. 这里使用NGUI2.7,因为他是一个开源的版本,NGUI最新的版本未经作者的许可,是不可以带入我们的开源项目使用的. 这个例子完成 ...

  4. Yii CModel中rules验证规则[转]

    array( array(‘username’, ‘required’), array(‘username’, ‘length’, ‘min’=>3, ‘max’=>12), array( ...

  5. ECMAScript5 Array新增方法

    数组在各个编程语言中的重要性不言而喻,但是在之前的JavaScript中数组(JavaScript 数组详解)虽然功能已经很强大,但操作方法并不完善,在ECMAScript5中做了适当的补充. Arr ...

  6. Qt控制台中文乱码问题

    本文主要记录了Qt控制台出现中文乱码的问题,一下列出了集中编码设置的方法.以前用VC6.0写的一个贪吃蛇的游戏,今天把源文件拿出来在Qt上面运行,出现中文乱码的问题.以前也遇到过,没想到小小的乱码,折 ...

  7. 360路由器刷openwrt后设置wifi中继

    上一篇文章(360路由器刷openwrt.不死uboot.双系统 .wifi中继 - 飞鸿影~ - 博客园)讲了如何在360路由器C301上安装openwrt以及安装双系统.这篇文章讲如何设置无线中继 ...

  8. vue初体验:实现一个增删查改成绩单

    前端变化层出不穷,去年NG火一片,今年react,vue火一片,ng硬着头皮看了几套教程,总被其中的概念绕晕,react是faceback出品,正在不断学习中,同时抽时间了解了vue,查看了vue官方 ...

  9. WPF入门教程系列十三——依赖属性(三)

    四. 只读依赖属性 在以前在对于非WPF的功能来说,对于类的属性的封装中,经常会对那些希望暴露给外界只读操作的字段封装成只读属性,同样在WPF中也提供了只读属性的概念,如一些 WPF控件的依赖属性是只 ...

  10. 简述移动端IM开发的那些坑:架构设计、通信协议和客户端

    1.前言 有过移动端开发经历的开发者都深有体会:移动端IM的开发,与传统PC端IM有很大的不同,尤其无线网络的不可靠性.移动端硬件设备资源的有限性等问题,导致一个完整的移动端IM架构设计和实现都充满着 ...