URL和URI之间的区别
引言
浏览网页时,我们需要知道“网址”才能访问,这里说的“网址”通常就是指URL
,比如:https://www.xydida.com/index.html
,而平时也会说URI
、URN
,那又是什么呢?今天就来捋一捋。
URL
Uniform Resource Locator,统一资源定位符,就是我们说的网址,标准格式如下:
协议类型有很多,常见的有http
、ftp
、file
等,既然代表一个资源,那么数据库连接字符串也算作URL
,如:jdbc:datadirect:oracle://myserver:1521;sid=testdb
。
URN
Uniform Resource Name,统一资源名称,指互联网上某一独一无二的资源的名称,标准格式如下:
urn:<nid>:<nss>
开头的urn:
序列大小写不敏感的。<nid>
是命名空间标识,它是一个“命名空间特定”的字符串,决定了如何解释<nss>
的句法,比如这个:urn:isbn:0-486-27557-4
,指向的就是莎士比亚的戏剧《罗密欧与朱丽叶》的某一特定版本。
URI
Uniform Resource Identifier,统一资源标志符,是标志互联网上某一资源的字符串,它包含URL
和URN
,如图:
所以,URN
如同一个人的名称,URL
代表一个人的地址。还是拿上面的ISBN 0-486-27557-4
举例,它表示的是一本书,为了获得这本书的资源来阅读,就需要知道它的位置,也就是URL
。更进一步,URN
定义某事物的身份,而URL
提供查找该事物的方法。
URL Scheme
这是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占用。
Universal Link
后来,由于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对应的页面,是不是很厉害。
本文系原创,转载请注明出处。