URL
統一的資源定位器 | |
縮寫 | URL |
---|---|
地位 | 出版 |
首次出版 | 1994 |
最新版本 |
生活水平 2023 |
組織 | 互聯網工程工作隊(IETF) |
委員會 | Web超文本應用技術工作組(WhatWG) |
系列 | 請求評論(RFC) |
編輯 | 安妮·範·凱斯滕(Anne Van Kesteren) |
作者 | 蒂姆·伯納斯·李 |
基本標準 | |
相關標準 | Uri , urn |
領域 | 全球資訊網 |
執照 | CC由4.0 |
網站 | url .spec .whatwg .org |
統一的資源定位器( URL ),俗稱網絡上的地址,是對資源指定其位置在計算機網絡上的位置以及用於檢索它的機制的引用。 URL是一種特定類型的統一資源標識符(URI),儘管許多人可以互換使用這兩個術語。 URL最常見的是引用網頁( HTTP / HTTP ),但也用於文件傳輸( FTP ),電子郵件( MailTO ),數據庫訪問( JDBC )和許多其他應用程序。
大多數Web瀏覽器在地址欄上的頁面上方顯示網頁的URL。典型的URL可以具有http://www.example.com/index.html
表格,該表格指示一個協議( http
), hostName ( www.example.com
)和文件名( index.html
)。
歷史
全球網絡發明者蒂姆·伯納斯·李(Tim Berners-Lee)在1994年的RFC 1738中定義了統一的資源定位器,以及互聯網工程工作組(IETF)的URI工作組,作為IETF Living文檔的合作結果,作為合作的結果。 1992年的羽毛鳥類。
該格式結合了域名(創建於1985年)的預先存在的系統與文件路徑語法,其中斜線用於分離目錄和文件名。已經存在約定服務器名稱可以前綴以完成文件路徑的情況,然後再進行雙斜線( //
)。
Berners-Lee後來對使用點分離Uris中的域名部分錶示遺憾域名是不必要的。
包括Berners-Lee在內的WorldWideWeb早期合作者最初提出了UDIS的使用:通用文檔標識符。 HTML規範的早期(1993年)提到了“通用”資源定位器。這是在1994年6月(RFC 1630 )和1994年10月(Draft-ietf-uri-url-08.txt)之間的一段時間。 Berners-Lee在編織網絡的書中,強調了他偏愛最初將“通用”包含在擴展中而不是“統一”一詞的偏愛,後來被更改為“統一”,他簡要介紹了引導的爭論改變。
句法
每個HTTP URL都符合通用URI的語法。 URI通用語法由五個組成的組成部分組成,以從左到右的意義下降的順序進行層次組織:
URI = scheme ":" ["//" authority] path ["?" query] ["#" fragment]
如果組件具有關聯的定界符,並且定界符沒有出現在URI中,則不確定。方案和路徑組件始終定義。如果組件沒有字符,則為空;該方案組件始終是非空的。
權威組成部分由子組件組成:
authority = [userinfo "@"] host [":" port]
這在語法圖中表示為:
URI包括:
- 非空方案組件後面是一個結腸(
:
,由一系列字符組成,以字母開頭,然後是字母,數字,加上(+
),erece(.
)或連字符(-
)的任何組合。儘管方案是對病例不敏感的,但規範形式是小寫,並且指定方案必須使用小寫字母進行的文檔。流行方案的示例包括http
,https
,ftp
,mailto
,file
,data
和irc
。儘管在實踐中使用了未註冊的方案,但應在Internet分配的數字授權(IANA)中註冊URI計劃。 - 可選權威組成部分之前是兩個斜線(
//
),包括: - 一個路徑分量,由一系列路徑段組成,該路徑段被斜線(
/
)隔開。儘管定義的路徑可能為空(零長度),但始終為URI定義路徑。一個段也可能是空的,導致路徑組件中的兩個連續斜線(//
)。路徑組件可以完全類似於或映射到文件系統路徑,但並不總是暗示與一個路徑的關係。如果定義了權限組件,則路徑組件必須為空或以斜杠(/
)開始。如果權限組件不確定,則該路徑不能以一個空段開頭(即有兩個斜線(//
),因此以下字符將被解釋為權威組成部分。
- 按照慣例,在http和https uris中,路徑的最後一部分被命名Pathinfo ,是可選的。它由不參考現有物理資源名稱(例如文件,內部模塊程序或可執行程序)的零或更多路徑段組成單獨傳遞到路徑的第一部分,該路徑識別由Web服務器管理的可執行模塊或程序;這通常用於選擇動態內容(文檔等)或根據要求進行調整(另請參見: CGI和PATH_INFO等)。
- 例子:
- URI:
"http://www.example.com/questions/3456/my-document"
- 其中:
"/questions"
是路徑的第一部分(可執行模塊或程序)和"/3456/my-document"
是名為Pathinfo的路徑的第二部分,該路徑被傳遞給了可執行的模塊或名為“名為”的程序"/questions"
選擇請求的文檔。
- URI:
- HTTP或HTTPS URI包含沒有查詢部分的Pathinfo部分的HTTP URI也可以稱為“乾淨URL ”,其最後一部分可能是“ slug ”。
查詢定界符 | 例子 |
---|---|
Ampersand( & )
|
key1 = value1&key2 = value2
|
半隆( ; )
|
key1 = value1; key2 = value2
|
- 可選查詢組件之前是問號(
?
),由一個非層次數據的查詢字符串組成。它的語法不是很好的定義,但是按照慣例通常是由定界符隔開的屬性 - 值對序列。 - 可選片段組件之前是哈希(
#
)。該片段包含一個碎片標識符,該片段提供了方向,例如剩餘的URI確定的文章中的部分。當主要資源是HTML文檔時,該片段通常是特定元素的id
屬性,Web瀏覽器會將此元素滾動到視圖中。
Web瀏覽器通常會通過向指定主機執行HTTP請求來解除URL,默認情況下對端口號80進行。使用https
方案的URL要求通過與網站的安全連接進行請求和響應。
國際化URL
互聯網用戶使用多種語言和字母在世界範圍內分發,並希望能夠在自己的本地字母中創建URL。國際化資源標識符(IRI)是包括Unicode字符的一種URL形式。所有現代瀏覽器都支持虹膜。需要針對不同字母的特殊處理的URL部分是域名和路徑。
IRI中的域名被稱為國際化域名(IDN)。 Web和Internet軟件會自動將域名轉換為可通過域名系統使用的PunyCode ;例如,中國URL http://xn--fsqu00a.xn--3lr804guic/
http://例子.卷筒纸
xn--
表示該字符最初不是ASCII 。
本地寫作系統中的用戶也可以指定URL路徑名。如果尚未編碼,則將其轉換為UTF-8 ,並且使用百分比編碼為十六進制的基本URL字符集的任何字符都可以逃脫;例如,日語URL http://example.com/引き割り.html
變為http://example.com/%E5%BC%95%E3%81%8D%E5%89%B2%E3%82%8A.html
。目標計算機解碼地址並顯示頁面。
協議相關的URL
協議相關鏈接(PRL),也稱為協議相關URL(PRURL),是未指定協議的URL。例如, //example.com
將使用當前頁面的協議,通常是http或https。