URL、URN、URI区别

既然Web应用程序的文件等资源是放在服务器上,而服务器是因特网(Internet)上的主机,当然必须要有个方法,告诉浏览器到哪里取得文件等资源。通常会听到有人这么说:“你要指定URL”,偶尔会听到有人说:“你要指定URI”。那么到底什么是URL、URI?甚至你还听过URN。首先,三个名称都是缩写,其全名分别为:

  • URL:Uniform Resource Locator
  • URN:Uniform Resource Name
  • URI:Uniform Resource Identifier

从历史的角度来看,URL的标准最先出现,早期U代表Universal(万用),标准化之后代表着Uniform(统一)。正如名称所指出,URL的主要目的,是一文字方式来说明因特网上的资源如何获得。一般而言,URL的主要格式为:

<协议>:<特定协议部分>

协议(scheme)指定了以何种方式取得资源。一些协议名的例子有:

  • ftp(文件传输协议,File Transfer Protocol)
  • http(超文本传输协议,Hypertext Transfer Protocol)
  • mailto(电子邮件)
  • file(特定主机文件名)

协议之后跟随冒号,特定协议部分的格式则为:

//<用户>:<密码>@<主机>:<端口号>/<路径>

举例来说,若资源放置在HTTP服务器上,如图1.2所示:

若主机名为 openhome.cc,要以HTTP协议取得 Gossip 目录中的 index.html文件,端口号 8080,则必须使用以下URL(如图 1.3所示):

http://openhome.cc:8080/Gossip/index.html

又假设想取得计算机文件系统中 C:\workspace 下的jdbc.pdf 文件,则可以指定如下URL格式:

file://C:/workspace/jdbc.pdf

简而言之,URL代表资源的地址信息,URN则代表某个资源独一无二的名称。举个例子来说,“JSP&Servlet学习笔记(第2版)”的国家标准书号(International Standard Book Number,ISBN)为 ISBN 978-7-302-28366-9,这就是URN的一个例子。

由于URL或URN的目的,都是用来标识某个资源,后来的标准指定了URI,而URL与URN成为URI的子集。在一些标准机构,如W3C(World Wide Web Consortium)文件中,后来就也多使用URI这个名词,不过许多人已习惯用URL,所以URL这个名词仍广为使用,程序员口语交谈也多见使用URL这个旧称。

如果想对URL、URI 与 URN 的历史演进与标准发布作更多的了解,可以参考Wikipedia(http://www.wikipedia.org/)的Uniform Resource Identifier:

http://en.wikipedia.org/wiki/Uniform_Resource_Identifier

URL、URN、URI的区别?的更多相关文章

  1. 【转】URL和URI的区别

    [转]URL和URI的区别 译者:华科小涛:http://www.cnblogs.com/hust-ghtao/: 初学http协议,就被这两个相似的术语搞蒙了,查了很多资料,总算搞清楚了.(找资料还 ...

  2. 一招明白URL和URI的区别

    URL和URI的区别(示例): URL[统一资源定位器]: http://localhost:8080/api/account/queryAccountInfo URI[统一资源定位符]: /api/ ...

  3. URL与URI的区别和联系

    转自:https://www.cnblogs.com/chengdabelief/p/6635045.html 简单理解是这样的:理解URI和URL的区别,我们引入URN这个概念. URI = Uni ...

  4. URL 与URI 的区别

    作者:Octocat链接:https://www.zhihu.com/question/21950864/answer/89835520来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转 ...

  5. URL和URI的区别与联系

    转自:http://win7452.blog.51cto.com/147513/45741 今天在看STRUTS配置的时候,发现一个问题,就是在看配置文件的时候,有时出现URL有时又是URI, 让我心 ...

  6. [译]URL和URI的区别

    译者:华科小涛:http://www.cnblogs.com/hust-ghtao/: 初学http协议,就被这两个相似的术语搞蒙了,查了很多资料,总算搞清楚了.(找资料还是英文啊,靠谱...). 本 ...

  7. URL 和URI的区别

    1.统一资源标志符URI就是在某一规则下能把一个资源独一无二地标识出来. URL:(Uniform/Universal Resource Locator 的缩写,统一资源定位符). URI:(Unif ...

  8. 2017.11.10 web中URL和URI的区别

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

  9. URL和URI的区别和联系

         URI:Universal Resource Identifier,通用资源标识符:   URL:Uniform Resource Locator,统一资源定位符:       其中,URL ...

  10. URL和 URI 的区别

    URL:统一资源定位符 URI:统一资源标识符 URL 是 URI 的一个子集: 来源知乎 1.统一资源标识符 URI 就是在某一规则下能把一个资源独一无二的表示出来. 拿人做例子,假设这个世界上多有 ...

随机推荐

  1. 【2016-10-17】【坚持学习】【Day8】【简单工厂模式】

    今天学习简单工厂模式, 结构 一个抽象产品 多个具体产品 一个工厂类,通过传入参数,new出不同的产品 代码: abstract class Product { //所有产品类的公共业务方法 publ ...

  2. Java集合之泛型的使用

    Java集合之泛型的使用 泛型提供了一种轻便灵活的数据操作,数据的安全性相对提高. 泛型提供了对列表元素的约束条件,比如ArrayList有序链表,可存储任意类型的元素. 此处构建一个ArrayLis ...

  3. Unity UI on hololens

    http://heliosinteractive.com/scaling-ui-hololens/ https://forum.unity3d.com/threads/unity-ui-on-the- ...

  4. C#.NET 大型企业信息化系统集成快速开发平台 4.2 版本 - 适合大型企业信息化应用使用的角色权限管理体系

    每个人外表看看都没什么大区别.但是内在的知识.处理问题的能力.解决问题的能力.头脑灵活性都会有很大的差距.软件组件也是一样,有些组件编写厉害,想问题深入,能处理的难题也多,构思巧妙. 通用快速开发平台 ...

  5. WPF中监视DependencyProperty的变化

    WPF中监视DependencyProperty的变化   周银辉 尽管一个类会提供很多事件,但有时候还是显得不够,比如说前两天我就以为WPF的ListBox控件会有ItemsSourceChange ...

  6. .NET定时任务执行管理器开源组件–FluentScheduler

    在日常项目里通常会遇到定时执行任务的需求,也就是定时器..NET Framework里关于定时器的类有3个,分别是System.Windows.Forms.Timer.System.Timers.Ti ...

  7. AngularJS 之 Factory vs Service vs Provider【转】

    英文原文:AngularJS: Factory vs Service vs Provider 当你初试 Angular 时,很自然地就会往 controller 和 scope 里堆满不必要的逻辑.一 ...

  8. ZH奶酪:自然语言处理工具LTP语言云调用方法

    前言 LTP语言云平台 不支持离线调用: 支持分词.词性标注.命名实体识别.依存句法分析.语义角色标注: 不支持自定义词表,但是你可以先用其他支持自定义分词的工具(例如中科院的NLPIR)把文本进行分 ...

  9. RGW/SWIFT对象存储性能测试工具--COSBench安装

    Cosbench是Intel的开源云存储性能测试软件,COSBench目前已经广泛使用与云存储测试,并作为云存储的基准测试工具使用 https://github.com/intel-cloud/cos ...

  10. c++/java/python priority_que实现最大堆和最小堆

    #include<iostream>#include<vector>#include<math.h>#include<string>#include&l ...