解析URI与URL之间的区别与联系_基础知识_脚本之家

2019-11-30 03:16栏目:竞技宝竞猜
TAG:

今天在看STRUTS配置的时候,发现一个问题,就是在看配置文件的时候,有时出现URL有时又是URI, 让我心生不解,到网上查了一圈,解释都含糊不清, 索性自己总结一下,仅代表个人理解,由于本人知识实在有限,可能会有错误,不过我认为是应该这样的。

初识URL和URI

转载:http://www.cnblogs.com/gaojing/archive/2012/02/04/2413626.html

总结如下:

URI

URI,uniform resource identifier,统一资源标识符,用来唯一地标识一个资源。格式为[scheme:]scheme-specific-part[#fragment]

  • [scheme:]组件:URI的名称空间标识。(大概是一种协议吧,不是很理解...)
  • scheme-specific-part组件:用于标识资源,内部格式由具体的scheme来决定。
  • [#fragment]组件:井号(#)作为fragment组件的起始字符,而fragment组件则用于聚焦到资源的某个部分。

URI,是uniform resource identifier,统一资源标识符,用来唯一的标识一个资源。而URL是uniform resource locator,统一资源定位器,它是一种具体的URI,即URL可以用来标识一个资源,而且还指明了如何locate这个资源。而URN,uniform resource name,统一资源命名,是通过名字来标识资源,比如mailto:java-net@java.sun.com。也就是说,URI是以一种抽象的,高层次概念定义统一资源标识,而URL和URN则是具体的资源标识的方式。URL和URN都是一种URI。

1.简写:URI (uniform resource identifier)统一资源标志符;URL(uniform resource location )统一资源定位符;URN(uniform resource name )统一资源命名。

scheme-specific-part组件

分层URI语法中scheme-specific-part组件的格式为:[//authority][path][?query]

  • [//authority]:表示授权机构组件,以一对正斜杠(//)起始,可以基于主机(server-based)或注册(registry-based)(而基于注册相对基于主机的数目较少),并以正斜杠、问号或无后续字符作为authority组件的结束。而authority组件的具体格式为 [userinfo@]host[:port]。
    • [userinfo@]:用户账号。
    • host:主机IP或域名。
    • [:port]:通信端口号,若省略则使用相应的scheme组件的默认端口号。
      (例如:http://fsjohnhuang@github.com:80/)
  • [path]:path组件表示根据authority组件识别资源的位置。path组件有一系列的路径片段(path segment)构成,路径片段间以正斜杠(/)作为分隔符。若第一个路径片段以正斜杠(/)起始则为绝对路径,否则称为相对路径。
  • [?query]:query组件用于识别要传递给资源的数据,用于影响资源的响应的行为。

在Java的URI中,一个URI实例可以代表绝对的,也可以是相对的,只要它符合URI的语法规则。而URL类则不仅符合语义,还包含了定位该资源的信息,因此它不能是相对的,schema必须被指定。

版权声明:本文由龙竞技官网发布于竞技宝竞猜,转载请注明出处:解析URI与URL之间的区别与联系_基础知识_脚本之家