URI scheme

URI Scheme 是统一资源标识符(Uniform Resource Identifier )的命名结构,说白了,就是定义一个资源的(暂且我们先认为URI Scheme与URI的概念是一样的)。但是,这个资源是一个宽泛的概念,并不一定是我们所说的web资源,它可以是你本机的一个文件,也可以是网络上的视频,等等。因此,我们有必要从一些常规的误区分辨出来,以加深我们的理解:
(1)认为URI就是URL。

   实际上,从其名称上来看,URI(Uniform Resource Identifier) 和URL(Uniform Resource Locator )两者名称都不一样,所以必然有区别,前者是统一资源标识符,后者是统一资源定位符,后者是网络上用于定位互联网上Web资源的,如HTML文档、图像、视频片段、程序等。

(2)它是一个通用定义,不是“protocols”,也不是URI protocols或者URL protocols。

(3)它经常用于设计特殊的协议。如http scheme(HTTP协议), XML namespaces,文件标示等等。

从上面的一些结论来看,URI Scheme实际上一个概念性的东西,是一个规范,所以符合它的规范的都可以称之为URI Scheme,当然,我们也可以设计我们自己的scheme,用来实现我们特殊的目的。它一般具有如下的形式:

<scheme name> : <hierarchical part> [ ? <query> ] [ # <fragment> ]

像:

http://write.blog.csdn.net/postedit/7313543,  

file:///c:/WINDOWS/clock.avi

git://github.com/user/project-name.git

ftp://user1:1234@地址

ed2k://|file|%5BMAC%E7%89%88%E6%9E%81%E5%93%81%E9%A3%9E%E8%BD%A69%EF%BC%9A%E6%9C%80%E9%AB%98%E9%80%9A%E7%BC%89%5D.%5BMACGAME%5DNeed.For.Speed.Most.Wanted.dmg|4096933888|2c55f0ad2cb7f6b296db94090b63e88e|h=ltcxuvnp24ufx25h2x7ugfaxfchjkwxa|/

这些都是一个URI Scheme。

其中:

<scheme name>:很明显,这是scheme的名称,对于上面五个scheme,它们scheme名分别是http, file, git, ftp, ed2k(电驴协议),实际上,它们也代表着协议名称。

<hierarchical part>:实际上,一般情况,它包含 authority 和 path。 

<query>:可选项目,一般使用;隔开或&隔开的键值对<key>=<value>

<fragmentg> :可选项目包,其它额外的标识信息

例如对这个uri分析:foo://username:password@example.com:8042/over/there/index.dtb?type=animal&name=narwhal#nose  和 urn:example:animal:ferret:nose 

的分析


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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值