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小時內與您取得聯系。