区别URI和URL

  本人在看《图解HTTP》的时候,刚开始还对URI和URL的区别不是太在意,越到后面越发觉区别两者的必要性。

  英文文档:“A URI is a uniform resource identifier while a URL is a uniform resource locator. Hence every URL is a URI, abstractly speaking, but not every URI is a URL. This is because there is another subcategory of URIs, uniform resource names (URNs), which name resources but do not specify how to locate them. The mailto, news, and isbn URIs shown above are examples of URNs.

The conceptual distinction between URIs and URLs is reflected in the differences between this class and the URL class.

An instance of this class represents a URI reference in the syntactic sense defined by RFC 2396. A URI may be either absolute or relative. A URI string is parsed according to the generic syntax without regard to the scheme, if any, that it specifies. No lookup of the host, if any, is performed, and no scheme-dependent stream handler is constructed. Equality, hashing, and comparison are defined strictly in terms of the character content of the instance. In other words, a URI instance is little more than a structured string that supports the syntactic, scheme-independent operations of comparison, normalization, resolution, and relativization.

An instance of the URL class, by contrast, represents the syntactic components of a URL together with some of the information required to access the resource that it describes. A URL must be absolute, that is, it must always specify a scheme. A URL string is parsed according to its scheme. A stream handler is always established for a URL, and in fact it is impossible to create a URL instance for a scheme for which no handler is available. Equality and hashing depend upon both the scheme and the Internet address of the host, if any; comparison is not defined. In other words, a URL is a structured string that supports the syntactic operation of resolution as well as the network I/O operations of looking up the host and opening a connection to the specified resource.”

  中文文档:"URI 是统一资源标识符,而 URL 是统一资源定位符。因此,笼统地说,每个 URL 都是 URI,但不一定每个 URI 都是 URL。这是因为 URI 还包括一个子类,即统一资源名称 (URN),它命名资源但不指定如何定位资源。上面的 mailtonews 和 isbn URI 都是 URN 的示例。

URI 和 URL 概念上的不同反映在此类和 URL 类的不同中。

此类的实例代表由 RFC 2396 定义的语法意义上的一个 URI 引用。URI 可以是绝对的,也可以是相对的。对 URI 字符串按照一般语法进行解析,不考虑它所指定的方案(如果有)不对主机(如果有)执行查找,也不构造依赖于方案的流处理程序。相等性、哈希计算以及比较都严格地根据实例的字符内容进行定义。换句话说,一个 URI 实例和一个支持语法意义上的、依赖于方案的比较、规范化、解析和相对化计算的结构化字符串差不多。

作为对照,URL 类的实例代表了 URL 的语法组成部分以及访问它描述的资源所需的信息。URL 必须是绝对的,即它必须始终指定一个方案。URL 字符串按照其方案进行解析。通常会为 URL 建立一个流处理程序,实际上无法为未提供处理程序的方案创建一个 URL 实例。相等性和哈希计算依赖于方案和主机的 Internet 地址(如果有);没有定义比较。换句话说,URL 是一个结构化字符串,它支持解析的语法运算以及查找主机和打开到指定资源的连接之类的网络 I/O 操作。

"

  以上是从官方文档对于URI的解释中出现的,对于URI、URL、URN的区别。简单地看,可以用一个表格来说明这三者的区别。


名词


特性


URI统一资源标识符


既可以相对地也可以绝对地标识一个资源的地址


URL统一资源定位符


是比URI更具体形式,只能是绝对地标识一个资源的地址


URN统一资源名称


只命名一个资源但不指定如何定位资源

  

  参考网址:https://docs.oracle.com/javase/8/docs/api/java/net/URI.html

       http://download.oracle.com/technetwork/java/javase/6/docs/zh/api/java/net/URI.html

原文地址:https://www.cnblogs.com/NYfor2018/p/8282324.html

时间: 2024-08-26 02:07:32

区别URI和URL的相关文章

URI和URL有什么区别

从JDK1.5开始,java.net包对统一资源定位符(uniform resource locator URL)和统一资源标识符(uniform resource identifier URI)作了非常有用的区分. URI是个纯粹的句法结构,用于指定标识Web资源的字符串的各个不同部分.URL是URI的一个特例,它包含了定位Web资源的足够信息.其他URI,比如mailto:[email protected] 则不属于定位符,因为根据该标识符无法定位任何资源. 在Java类库中,URI类不包含

URI与URL的区别

(原网址:http://zhidao.baidu.com/question/38764759.html) Web上可用的每种资源 - HTML文档.图像.视频片段.程序等 - 由一个通过通用资源标志符(Universal Resource Identifier, 简称"URI")进行定位. 1.URI一般由三部分组成: 2.访问资源的命名机制. 3.存放资源的主机名. 4.资源自身的名称,由路径表示. 考虑下面的URI,它表示了当前的HTML 4.0规范: http://www.web

URI与URL区别

URL 与 URI 很多人会混淆这两个名词. URL:(Uniform/Universal Resource Locator 的缩写,统一资源定位符). URI:(Uniform Resource Identifier 的缩写,统一资源标识符)(代表一种标准). 关系: URI 属于 URL 更高层次的抽象,一种字符串文本标准. 就是说,URI 属于父类,而 URL 属于 URI 的子类.URL 是 URI 的一个子集. 二者的区别在于,URI 表示请求服务器的路径,定义这么一个资源.而 URL

URI、URL与URN的区别

URI.URL与URN的区别 URI:Uniform Resource Identifier,统一资源标识符: URL:Uniform Resource Locator,统一资源定位符: URN:Uniform Resource Name,统一资源名称. 联系:URL,URN是URI的子集. Web上地址的基本形式是URI,它代表统一资源标识符.有两种形式: URL:目前URI的最普遍形式就是无处不在的URL或统一资源定位器. URN:URL的一种更新形式,统一资源名称(URN, Uniform

[译] URI和URL有什么区别?

作为一名web开发人员,意味着尽可能得了解互联网工作原理是很有益处的,也意味着你会听到很多不经常被正确使用的首字母缩略词. 你会听到一个缩略词的例子,那就是URI和URL.虽然它们可以互换使用,但是他们之间还是有一些微妙的差别.对于初学者来说,URI表示统一资源标识符,URL表示统一资源定位符. 这两者大多数混淆是因为它们之间的关联性.你看,一个URI可以是一个名称.定位符或者两者兼有的在线资源,而URL只是其中的定位符.URL是URI的一个子集.那就说明,所有URL都是URI,但是反过来则不成

URI是什么意思?URI和URL有什么区别?

详解! HTTP = Hyper Text Transfer ProtocolURI = Universal Resource IdentifierURL = Universal Resource Locator 一句话解释:URI 和 URL 都定义了 what the resource is.URL 还定义了 how to get the resource. URI是用来标识网上的资源的URI分为URL和URN这两大类.URL与URN的不同之处在于前者不仅标识资源,而且还指出了访问资源的方式

URI和URL区别

总结如下: 1.简写:URI (uniform resource identifier)统一资源标志符:URL(uniform resource location )统一资源定位符(或统一资源定位器):URN(uniform resource name )统一资源命名. 2.URI 和 URL 的比较 a.URI是一个相对来说更广泛的概念,URL是URI的一种,是URI命名机制的一个子集,可以说URI是抽象的,而具体要使用URL来定位资源. b.Web上的每一种资源如:图片.文档.视频等,都是由

URI和URL及URN的区别

对于URL,大家都比较熟悉,其他两个词就比较陌生了.URI.URL和URN是识别.定位和命名互联网上的资源的标准途径.1989年Tim Berners-Lee发明了互联网(World Wide Web).WWW被认为是全球互连的实际的和抽象的资源的集合–它按需求提供信息实体–通过互联网访问.实际的资源的范围从文件到人,抽象的资源包括数据库查询. 因为要通过多样的方式识别资源(人的名字可能相同,然而计算机文件只能通过唯一的路径名称组合访问),所以需要标准的识别WWW资源的途径.为了满足这种需要,T

URI、URL、URN区别和联系

URI,URL,URN 从上面的那幅图可以看出来,一共有三个不同的概念URI,URL,URN.这讨论这样的问题时,最好的方法就是回到原点啊,这里我们在RFC 3986: Uniform Resource Identifier (URI): Generic Syntax里面收集了点资料: "A Uniform Resource Identifier (URI) 是一个紧凑的字符串用来标示抽象或物理资源." "A URI 可以进一步被分为定位符.名字或两者都是. 术语"