跳至內容

URL

出自轻之舟百科
統一資源定位符
中文名統一資源定位符
英文名Uniform Resource Locator
縮寫URL
提出者蒂姆·伯納斯-李(Tim Berners-Lee)
首次發布1994年(RFC 1738)
最新標準URL Standard(WHATWG 實時標準)[1]
相關標準RFC 3986、RFC 3987

統一資源定位符(縮寫:URL),俗稱網頁地址或網址[2],是對萬維網上資源(如網頁、圖像、文件等)的位置和訪問方法的一種簡潔表示。URL是統一資源標識符(URI)的一種具體形式,它不僅唯一標識一個資源,還指明了如何定位和獲取該資源[3][4]。URL由蒂姆·伯納斯-李(Tim Berners-Lee)發明,最初用於萬維網的地址系統,隨後由萬維網聯盟(W3C)和互聯網工程任務組(IETF)制定為互聯網標準RFC 1738[5][2]。如今,URL是互聯網基礎設施中最基本的組成部分之一,幾乎所有網絡瀏覽器和網絡應用都依賴URL來定位和訪問在線資源[1]。

URL的概念源於1990年蒂姆·伯納斯-李為歐洲核子研究組織(CERN)開發的萬維網項目。他設計了URL作為超文本系統中定位文檔和資源的方式,與超文本傳輸協議(HTTP)和超文本標記語言(HTML)共同構成了萬維網的三大核心技術[6][7]。

1992年,IETF成立了URI工作組,開始對URL進行標準化工作[5]。1994年,RFC 1738正式發布,由蒂姆·伯納斯-李和IETF URI工作組共同編寫,定義了URL的語法和格式[5][2]。此後,URL標準不斷演進,RFC 3986(2005年)和RFC 3987(2006年)分別更新了URI和國際化資源標識符(IRI)的規範[1]。

2010年代起,WHATWG(Web超文本應用技術工作組)發布了URL實時標準(URL Living Standard),旨在統一和簡化URL的解析與處理,逐步取代早期的RFC標準[1][8]。

一個完整的URL通常由多個部分組成,其通用語法格式如下[2][3]:

协议 :// 主机名 [: 端口号] / 路径 [ ; 参数 ] [ ? 查询 ] [ # 片段 ]

其中方括號內的部分為可選項。各部分含義如下:

  • 協議(Scheme):指定訪問資源所使用的通信協議,如 `http`、`https`、`ftp`、`mailto`、`file` 等[2][8]。協議名稱不區分大小寫,但通常使用小寫。
  • 主機名(Host):資源所在服務器的域名(如 `www.example.com`)或IP地址(如 `192.0.2.1`)[2][3]。
  • 端口號(Port):服務器上用於接受請求的端口編號。各協議有默認端口(如HTTP為80,HTTPS為443),省略時使用默認值[2]。
  • 路徑(Path):服務器上資源的具體位置,通常由斜槓分隔的目錄和文件名組成[2][3]。
  • 參數(Parameters):部分協議支持的分號分隔的附加參數,現已不常見[2]。
  • 查詢(Query):用於向動態網頁傳遞參數的字符串,以問號 `?` 開頭,多個參數之間用 `&` 分隔,格式為 `鍵=值`[2]。
  • 片段(Fragment):指向資源內部特定位置的標識符,以井號 `#` 開頭,常用於定位網頁中的某個章節或元素[2][3]。

示例:`https://www.example.com:443/docs/page.html?lang=zh#section2`

與URI的關係

[編輯 | 編輯原始碼]

URL是統一資源標識符(URI)的一個子集。URI是一個更廣義的概念,用於唯一標識一個資源,而URL不僅標識資源,還提供了定位和訪問該資源的方法[3][8]。URI的另一個子集是統一資源名稱(URN),它僅通過名稱標識資源而不涉及位置[3]。

在實踐中,URL和URI兩個術語經常被混用,但技術上所有URL都是URI,反之則不一定成立[8]。

URL中只能使用ASCII字符集的一部分字符。對於不在允許範圍內的字符(如中文、空格、特殊符號等),需要進行百分號編碼(Percent-encoding,又稱URL編碼)[9]。編碼方式是將每個非ASCII字符或特殊字符轉換為 `%` 後跟該字符ASCII碼或UTF-8編碼字節的兩位十六進制表示[9][10]。

例如,空格字符(ASCII 32)編碼為 `%20`,中文「上海」在UTF-8下編碼為 `%E4%B8%8A%E6%B5%B7`[11]。

URL的主要標準文件包括:

  • RFC 1738(1994年):URL的原始標準,已廢棄[5]。
  • RFC 3986(2005年):URI通用語法標準,取代RFC 1738成為URL的主要參考[3]。
  • RFC 3987(2006年):國際化資源標識符(IRI)標準,允許在URL中使用非ASCII字符[1]。
  • WHATWG URL Standard(實時更新):當前最廣泛實施的URL標準,定義了URL的解析、序列化和API,旨在統一各實現之間的差異[1][8]。

參考文獻

[編輯 | 編輯原始碼]