Web 用單一命名系統來引用文件,這些名稱叫做統一資源識別符(Uniform Resource Identifiers, URI)。URI 有兩種形式:
- 統一資源定位符(Uniform Resource Locator, URL):藉由包含「如何存取、在哪裡存取」的資訊來識別文件——是與位置相關的文件引用。
- 統一資源名稱(Uniform Resource Name, URN):如第 5 章所述的真正識別符——全域唯一、與位置無關、持久的文件引用。
URI 的實際語法由其**方案(scheme)**決定,方案名稱是 URI 的一部分。http 方案最為人熟知,但不是唯一的。
URL 與 URN 的差異正逐漸消失,現在常見的做法是直接定義 URI 名稱空間。
URL 的結構與解析#
URL 通常包含「如何存取、在哪裡存取」文件的資訊:
- 如何存取:一般反映在 URL 所含的方案名稱上,如 http、ftp、telnet。
- 在哪裡:以伺服器的 DNS 名稱內嵌在 URL 中(也可用 IP 位址);伺服器監聽請求的埠號也是 URL 的一部分,省略時使用預設埠。
- 最後,URL 還包含要由該伺服器查找的文件名稱。
常見的 URL 結構因此有三種:只用 DNS 名稱、DNS 名稱加埠號、IP 位址加埠號。

圖 12-15:URL 常用的結構。(a) 只使用 DNS 名稱。(b) DNS 名稱加埠號。(c) IP 位址加埠號
解析 URL 很直接:若伺服器以 DNS 名稱引用,先把名稱解析成伺服器的 IP 位址;再用 URL 中的埠號、以方案指名的協定聯絡伺服器,把 URL 最後一段的文件名稱傳給它。
其他 URI 名稱空間#
URL 在 Web 上仍是主流,但也已有各種獨立的 URI 名稱空間被提出,用於其他種類的 Web 資源,甚至用於「引用文件」以外的目的:
- http:以 HTTP 傳輸文件;ftp 則用於以 FTP 傳檔。
- data:直接把文件本身內嵌在 URI 裡的「即時文件」,類似把檔案資料內嵌在 inode 中;例如一個內含希臘字串純文字的 URI。
- telnet:用於對伺服器建立 telnet 會談。
- tel:本質上只內嵌一個電話號碼,讓客戶端(通常就是電話)跨電話網路撥打。
- modem:用於與另一台電腦建立數據機連線,例如指定遠端數據機應遵循 ITU-T V32 標準。
