RI、URL和URN
URI :Uniform Resource Identifier,统一资源标识符
URL:Uniform Resource Locator,统一资源定位符
URN:Uniform Resource Name,统一资源名称。
其中,URL,URN是URI的子集。
URI一般由三部分组成:
URI是以某种统一的(标准化的)方式标识资源的简单字符串。
典型情况下,这种字符串以scheme(命名URI的名字空间的标识符——一组相关的名称)开头,语法如下:
[scheme:] scheme-specific-part
URI以scheme和冒号开头。Scheme用大写/小写字母开头,后面为空或者跟着更多的大写/小写字母、数字、加号、减号和点号。冒号把scheme与scheme-specific-part分开了,并且scheme-specific-part的语法和语义(意思)由URI的名字空间决定。如下面的例子:
http://域名
其中http是scheme,//域名 是scheme-specific-part,并且它的scheme与scheme-specific-part被冒号分开了。
URI有绝对和相对之分,绝对的URI指以scheme(后面跟着冒号)开头的URI。前面提到的http://域名 就是绝对的URI的一个例子,其它的例子还有mailto:xxx@xxx.xx、news:地址和xyz://whatever。你可以把绝对的URI看作是以某种方式引用某种资源,而这种方式对标识符出现的环境没有依赖。如果使用文件系统作类比,绝对的URI类似于从根目录开始的某个文件的径。
与绝对的URI不同的,相对的URI不是以scheme(后面跟着冒号)开始的URI。 它的一个例子是articles/articles.html。你可以把相对的URI看作是以某种方式引用某种资源,而这种方式依赖于标识符出现的环境。如果用文件系统作类比,相对的URI类似于从当前目录开始的文件路径。
URL是Uniform Resource Location的缩写,译为”统一资源定位符”。通俗地说,URL是Internet上用来描述信息资源的字符串,主要用在各种WWW客户程序和服务器程序上,特别是著名的Mosaic。采用URL可以用一种统一的格式来描述各种信息资源,包括文件、服务器的地址和目录等。
目前最大的缺点是当信息资源的存放地点发生变化时,必须对URL作相应的改变。因此人们正在研究新的信息资源表示方法,例如:URI(Universal Resource Identifier)即”通用资源标识”
URN(Uniform Resource Name)即”统一资源名”和URC(Uniform Resource Citation)即”统一资源引用符”等。
URI还在进一步的研究当中。研究的方向就是弥补URL的缺点。
整理自百度百科。
浏览网页时,我们需要知道“网址”才能访问,这里说的“网址”通常就是指URL,比如:https://www.xydida.com/index.html,而平时也会说URI、URN,那又是什么呢?今天就来捋一捋。
Uniform Resource Locator,统一资源定位符,就是我们说的网址,标准格式如下:
协议类型有很多,常见的有http、ftp、file等,既然代表一个资源,那么数据库连接字符串也算作URL,如:jdbc:datadirect:oracle://myserver:1521;sid=testdb。
Uniform Resource Name,统一资源名称,指互联网上某一独一无二的资源的名称,标准格式如下:
urn:<nid>:<nss>
开头的urn:序列大小写不敏感的。<nid>是命名空间标识,它是一个“命名空间特定”的字符串,决定了如何解释<nss>的句法,比如这个:urn:isbn:0-486-27557-4,指向的就是莎士比亚的戏剧《罗密欧与朱丽叶》的某一特定版本。
Uniform Resource Identifier,统一资源标志符,是标志互联网上某一资源的字符串,它包含URL和URN,如图:
所以,URN如同一个人的名称,URL代表一个人的地址。还是拿上面的ISBN 0-486-27557-4举例,它表示的是一本书,为了获得这本书的资源来阅读,就需要知道它的位置,也就是URL。更进一步,URN定义某事物的身份,而URL提供查找该事物的方法。
这是ios在很久之前推出的为了在app间通信的一种特殊链接,就是我们常说的Deep Link,比如:taobao://market.m.taobao.com/app/tmall-def/daily-welfare/pages/index?wh_weex=true,在浏览器里输入这个链接就能直接打开淘宝APP的领红包页面,可以看到URL Scheme的协议字段是自定义的,一些其他的APP URL Scheme可以看我这篇文章,局限性,比如APP开发人员要维护两套逻辑,而且自定义的协议字段有可能被其他APP占用。
后来,由于URL Scheme的各种局限性,ios 9之后又推出了Universal Link,官网的解释如下:
Seamlessly link to content inside your app, or on your website in iOS 9 or later. With universal links, you can always give users the most integrated mobile experience, even when your app isn’t installed on their device.
通俗地讲,Universal Link可以让用户点击跳转的时候直接打开APP,并跳转到指定页面,这个和上面的Deep Link一样,只不过不用自定义协议字段,直接用通用的网址链接就可以打开APP,比如浏览器中输入https://www.xydida.com/post/2,浏览器会跳转到某个页面,同时如果安装了APP的话,就会直接打开APP对应的页面,是不是很厉害。
本文系原创,转载请注明出处。
*请认真填写需求信息,我们会在24小时内与您取得联系。