統一資源識別符號（，縮寫：URI）是在網際網路中唯一的字元序列，用於標識各類抽象或物理資源等物件的統一符號和編碼規則，例如網頁上的資源、郵件地址、電話號碼、書籍和現實世界的物件如人和地點、概念等 。它由三部分組成：統一資源名稱（URN），作為物件的邏輯名稱；（URC），作為物件的元資料；統一資源定位器（URL），作為物件的定位和獲取。URI 用於標識任何使用資源描述框架（RDF）描述的事物，例如使用網路本體語言（OWL）定義的本體中的概念，以及使用詞彙描述的人，都將各自有一個獨立的 URI。 該種標誌允許使用者對網路中（一般指全球資訊網）的資源透過特定的協議進行互動操作。URI 的最常見的形式是統一資源定位符（URL），經常指定為非正式的網址。更罕見的用法是統一資源名稱（URN），其目的是透過提供一種途徑。用於在特定的名稱空間資源的標誌，以補充網址。 與 URL 和 URN 的關係 URI 可被視為定位符（URL），名稱（URN）或兩者兼備。統一資源名（URN）如同一個人的名稱，而統一資源定位符（URL）代表一個人的住址。換言之，URN 定義某事物的身份，而 URL 提供查詢該事物的方法。 用於標誌唯一書目的 ISBN 系統是一個典型的 URN 使用範例。例如，ISBN 0486275574 無二義性地標誌出莎士比亞的戲劇《羅密歐與朱麗葉》的某一特定版本。為獲得該資源並閱讀該書，人們需要它的位置，也就是一個 URL 地址。在類 Unix 作業系統中，一個典型的 URL 地址可能是一個檔案目錄，例如 filehomeusernameRomeoAndJulietpdf。該 URL 標誌出儲存於本地硬碟中的電子書檔案。因此，URL 和 URN 有著互補的作用。 技術觀點 URL 是一種 URI，它標誌一個網際網路資源，並指定對其進行操作或取得該資源的方法。可能透過對主要訪問手段的描述，也可能透過網路 位置 進行標誌。例如，httpwwwwikipediaorg 這個 URL，標誌一個特定資源（首頁）並表示該資源的某種形式（例如以編碼字元表示的，首頁的 HTML 程式碼）是可以透過 HTTP 協議從 wwwwikipediaorg 這個網路主機獲得的。URN 是基於某名稱空間透過名稱指定資源的 URI。人們可以透過 URN 來指出某個資源，而無需指出其位置和獲得方式。資源無需是基於網際網路的。例如，URN urnISBN 0395363411 指定標誌系統（即國際標準書號 ISBN）和某資源在該系統中的唯一表示的 URI。它可以允許人們在不指出其位置和獲得方式的情況下談論這本書。 技術刊物，特別是 IETF 和 W3C 釋出的標準中，通常不再使用 URL 這一術語，因為很少需要區別 URL 和 URI。但是，在非技術文獻和全球資訊網軟體中，URL 這一術語仍被廣泛使用。此外，術語 網址（沒有正式定義）在非技術文獻中時常作為 URL 或 URI 的同義詞出現，雖然往往其指代的只是 http 和 https 協議。 RFC 3305 關於 URI 的討論多源於題目為《W3CIETF URI 規劃聯合小組報告：統一標誌資源符（URI），URL 和統一資源名（URN）：闡明與建議》的 RFC3305 檔案。這一 RFC 檔案描述了一個，以統一 W3C 和 IETF 內部對於各種 UR 術語之間關係的不同看法為目的而設立的，W3CIETF 聯合工作小組的工作。雖然未作為標準被這兩個組織所釋出，但該檔案確立了上述種種共識，並就此催生了許多標準的誕生。 文法 URI 文法由 URI 協議名（例如 http、ftp、mailto、file），一個冒號，和協議對應的內容所構成。特定的協議定義了協議內容的語法和語義，而所有的協議都必須遵循一定的 URI 文法通用規則，亦即為某些專門目的保留部分特殊字元。URI 文法同時也就各種原因對協議內容加以其他的限制，例如，保證各種分層協議之間的協同性。百分號編碼也為 URI 提供附加資訊。 通用 URI 的格式如下： 例子 下圖展示了一些 URI 示例及它們的組成部分。 歷史 命名、定位與標誌資源 URI 與 URL 有著共同的歷史。在 1990 年，提姆柏內茲 李的關於超文字的提案間接地引入了使用 URL 作為一個表示超連結目標資源的短字串的概念。當時，人們稱之為 超文字名 或 文件名。 在之後的三年半中，由於全球資訊網的超文字標記語言核心技術、HTTP 與瀏覽器都得到了發展，區別提供資源訪問和資源標記的兩種字串的必要性開始顯現。雖然其時尚未被正式定義，但 統一資源定位符 這一術語開始被用於代表前者，而後者則由 統一資源名稱 所表示。 在關於定義 URL 和 URN 的爭論中，人們注意到兩者事實上基於同一個基礎的 資源標誌 的概念。在 1994 年 6 月，IETF 釋出了 BernersLee 的 RFC 1630，（非正式地）指出了 URL 和 URN 的存在，並進一步定義了 通用資源標誌符 語義和語法由具體協議規定的類 URL 字串的規範文法。此外，該 RFC 文件亦嘗試定義了其時正被使用著的 URL 協議的文法，同時指出（但並未標準化）了相對 URL 和片段標誌符的存在。 標準改良 1994 年 12 月，RFC 1738 正式定義了絕對和相對 URL，改進了 URL 文法，定義瞭如何解析 URL 為絕對形式，並更加完善地列舉了其時正處於使用中的 URL 協議。而 URN 定義和文法直到 1997 年 5 月 RFC 2141 公佈後才正式統一。 1998 年 8 月，隨著 RFC 2396 的發表，URI 文法形成了獨立的標準，同時 RFC 1630 和 1738 中關於 URI 和 URL 的許多部分也得到了修訂和增補。。新 RFC 修改了 URI 中 U 的含義：它開始代表統一（Uniform）而不再是通用（Universal）。RFC 1738 中總結了既存 URL 協議的部分被移至另外一篇獨立文件中。This separate document is not explicitly linked RFC 2717 and RFC 4395 point to the IANA registry as the official URI scheme registryIANA 保留著這些協議的註冊資訊，而 RFC 2717 首次描述了註冊它們的流程。 在 1999 年 12 月，RFC 2732 對 RFC 2396 進行了小幅更新，開始允許 URI 包括 IPv6 地址。一段時間以後，在兩個標準中暴露出的一些問題促使了一系列的修訂草案的發展，這些草案被統稱為 rfc2396bis。這一由 RFC 2396 的共同作者引導協調的集體努力，由 2005 年 1 月 RFC 3986 的釋出推至了頂峰。該 RFC 文件成為了現今（2009 年）於網際網路上被推薦使用的 URI 文法版本，並使得 RFC 2396 成為了歷史。然而，它卻並未替代現有的 URL 協議細節；RFC 1738 繼續管轄著大多數協議，除了某些已被它取而代之的場合 例如被 RFC 2616 改良的 HTTP 協議等。與此同時，IETF 釋出了 RFC 3986，亦即完整的 STD 66 標準，標誌著 URI 通用文法正式成官方因特網協議。 在 2002 年 8 月，RFC 3305 指出，雖然術語 URL 仍被廣泛地用於日常用語之中，但其本身已幾乎被廢棄。其現在的功用，僅是作為對於某些 URI 因包含某種指示著網路可達性的協議而作為地址存在的提醒而已。基於 URI 的眾多標準，例如資源描述框架等，已經清楚地表明，資源標誌本無需指出透過網際網路獲得資源副本的方法，亦無須指出資源是否基於網路。 在 2006 年 11 月 1 日，W3C 技術架構小組（，）公佈了《連線替代副本使查詢和釋出可行化 》，一個對於釋出給定資源的多個版本的權威 URI 和其最佳實踐的指導。例如，內容可能因用於訪問資源的裝置的支援性和設定不同，而語言或大小上有所調整已適應這種差異。 語義網使用 HTTP URI 協議以標誌文件和現實世界中的概念：這使得人們就如何區分二者產生了一些困擾。W3C 技術架構小組在 2005 年 6 月釋出了一封關於如何解決這一問題的電子郵件，該郵件被稱為 http 範圍 14 決議 。The httpRange14 resolution consists of three bullet points see and did not help much to reduce the confusion 為了擴充這個（相當簡短的）電子郵件，W3C 在 2008 年 3 月釋出了網際網路組註釋《用於語義網的酷 URI》。這一文件詳細闡釋了內容協商和 303 重定向碼的使用。 URI 引用 另一種型別的字串 URI 引用 代表一個 URI 並（相應地）代表被該 URI 所標誌的資源。非正式使用中，URI 和 URI 引用的區別少有被提及，但協議文件自然不應允許歧義的存在。 URI 引用可取用的格式包括完整 URI，URI 中協議特定的部分，或其後附部分 甚至是空字串。一個可選的片段標誌符以 開頭，可出現在 URI 引用的結尾。引用中， 之前的部分間接標誌一個資源，而片段標誌符則標誌資源的某個部分。 為從 URI 引用獲得 URI，軟體將 URI 引用與一個絕對 基址 基於一個固定演算法合併，並轉換為 絕對 形式。系統將 URI 引用視作相對於基址 URI，雖然在絕對引用的情況下基址並無意義。基址 URI 一般標誌包含 URI 引用的文件，但仍可被文件內包含的宣告，或外部資料傳輸協議所包括的宣告改寫。若基址 URI 包括一個片段標誌符，則該標誌符在合併過程中被忽略。如果在 URI 引用中出現片段標誌符，則在合併過程中被保留。 網路文件標記語言時常使用 URI 引用指向其它資源，如外部文件或同一邏輯文件的其他部分等。 標記語言中 URI 引用的使用 在 HTML 中，img 元素的 src 屬性值是 URI 引用，a 或 link 元素的 href 屬性值亦如是。 在 XML 中，在一個 DTD 中的 SYSTEM 關鍵字之後出現的系統描述符是一個無片段的 URI 引用。 在 XSLT 中，xslimport 元素 指令的 href 屬性值是一個 URI 引用，document 函式的第一個引數與之相仿。 絕對 URI 的例子 httpexampleorgabsoluteURIwithabsolutepathtoresourcetxt ftpexampleorgresourcetxt urnissnXSLT15353613 URI 引用的例子 httpzhwikipediaorgwikiURIExamples_of_URI_references （http 指定協議名，zhwikipediaorg 是 典據 wikiURI 是指向英文維基頁面的 路徑，而 Examples_of_URI_references 是指向中文維基頁面相應片段的 URI。 httpexampleorgabsoluteURIwithabsolutepathtoresourcetxt exampleorgschemerelativeURIwithabsolutepathtoresourcetxt relativeURIwithabsolutepathtoresourcetxt relativepathtoresourcetxt resourcetxt resourcetxtfrag01 resourcetxt frag01 空字串 URI 解析 解析 一個 URI 意味著將一個相對 URI 引用轉換為絕對形式，或者透過嘗試獲取一個可解引 URI 或一個 URI 引用所代表的資源來解引用這個 URI。文件處理軟體的 解析 部分通常同時提供這兩種功能。 一個 URI 引用可以是一個同文檔引用：一個指向包含 URI 引用自身的文件的引用。文件處理軟體可有效地使用其當前的文件資源來完成對於同文檔引用的解析而不需要重新取得一份資源。這只是一個建議 文件處理軟體自然可以選用另外的方法來決定是否獲取新資源。 當前的 URI 規範，RFC 3986，將一個同文檔引用的 URI 定義為 當解析為絕對形式時與引用的基文件地址完全一致的文件。一般來說，基文件 URI 就是包含引用的文件的 URI。例如，XSLT 10 包括 document 函式以實現這一功能。RFC 3986 同時也正式定義了 URI 等效性，一個可以被用來判斷一個與基 URI 不同的 URI 是否表示同一個資源，並因此可以被認為是同文檔引用。 RFC 2396 給出了一個不同的判斷同文檔引用的方法；RFC 3986 替代了 RFC 2396，但 RFC 2396 仍舊作為許多規範和實現的基礎而存在。這一規範將一個空字串或僅包括 字元和可選的片段標誌符組成的 URI 引用定義為同文檔引用。 與 XML 名稱空間的關係 XML 擁有一個叫名稱空間的，一個可包含元素集和屬性名稱的抽象域的概念。名稱空間的名稱（一個必須遵守通用 URI 文法的字串）用於標誌一個 XML 名稱空間。但是，名稱空間的名稱一般 Harold Elliote Rusty 2004 XML 11 Bible Third Edition Wiley Publishing Inc p 291 ISBN 0764549863 不被認為是一個 URI，因為 URI 規範定義了字串的 URI 性 是根據其目的而不是其詞法組成決定的。一個名稱空間名稱同時也並不一定暗示任何 URI 協議的語義；例如，一個以 http 開頭的名稱空間名稱很可能與 HTTP 協議沒有任何關係。XML 專家們就這一問題在 XML 開發電子郵件列表上進行了深入的辯論；一名稱空間名稱可以是 URI，由於包含一個具體名稱空間的名稱集可以被看作是一個被標誌的資源，也由於 XML 中的名稱空間 規範的一個版本指出過名稱空間名稱 是 一個 URI 引用。 但是，集體共識似乎指出一個名稱空間名稱只是一個湊巧看起來像 URI 的字串，僅此而已。 早先，名稱空間名稱是可以匹配任何非空 URI 引用的語法的，但後來的一個對於 XML 名稱空間建議 的訂正廢棄了相對 URI 引用的使用。一個獨立的、針對 XML 11 的名稱空間的規範允許使用 IRI 引用作為名稱空間名稱的基準，而不僅是 URI 引用。 為了消除 XML 新人中產生的對於 URI（尤其是 HTTP URL）的使用的困惑，一個被稱為 RDDL（資源目錄描述語言）的描述語言被建立了，雖然 RDDL 的規範並沒有正式地位，也並沒有獲得任何相關組織（例如 W3C）的檢查和支援。一個 RDDL 文件可以提供關於一個特定名稱空間和使用它的 XML 文件的，機器與人類都能讀懂的資訊。XML 文件的作者鼓勵使用 RDDL 文件，這樣一旦文件中的名稱空間名稱被索引，（系統）就會取得一個 RDDL 文件。這樣，許多開發者對於讓名稱空間名稱指向網路可達資源的需求就能得到滿足。 參見 統一資源定位符（URL） 統一資源名稱（URN） 鍵連資料（Linked data） XRI UUID 參考文獻 引用作品 Category 應用層協議 Category 網際協議 Category 網際網路標準 Category 語義網