引言
瀏覽網頁時,我們需要知道“網址”才能訪問,這里說的“網址”通常就是指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對應的頁面,是不是很厲害。
本文系原創,轉載請注明出處。