URL(Uniform Resource Locator ,統一資源定位符)是瀏覽器尋找信息時所需的資源位置。通過URL這種因特網的標準化名稱,人類和應用程序才能找到并使用因特網上大量的數據資源。本文將介紹URL的語法,Web客戶端支持的URL快捷方式,URL編碼和字符規則等等。
服務器資源名被稱為URI(統一資源標識符),而我們常說的URL,實際上是URI的一個子集,也是URI最常見的形式。除此之外,URI還包括URN(其通過名字來識別資源,與它們當前所處位置無關,現仍處于試用階段)。實際上HTTP應用程序處理的只是URL,所以下面講的基本都是URL。
1. URL的語法
大多數URL語法都建立在以下9部分構成的通用格式上,其中最重要的方案(scheme)、主機(host)和路徑(path):
2. URL快捷方式
URL有兩種方式:絕對的和相對的。像上面列舉的都是絕對URL,包含了訪問資源所需的全部信息。相對URL是一種簡寫方式,需要相對一個基礎URL進行解析。
相對URL到絕對URL的轉換處理,首先是要找到基礎URL,一般可以顯示提供(比如HTML文檔定義一個標簽顯式指定基礎URL),或者在封裝資源中提供(比如HTML文檔中的a標簽鏈接,其基礎URL就是這個HTML文檔本身)。接著就是通過以下算法把相對URL轉換成絕對URL。
3. URL字符與編碼
通常來說,URL采用的是US-ASCII字符集,但是這有很多局限性,因此用一種“轉義”表示法來表示不安全字符,通過這種編碼機制來避開各種限制。這種轉義表示法包含一個百分號“%”,后面跟著兩個表示ASCII字符的十六進制數。例如URL中的“~”編碼成“%7E”,空格編碼成“%20”,“%”編碼成“%25”。此外URL還有一些字符用作保留字符,如%/.#?;:@&=等等,此處不再贅述。
URL是一種強有力的工具,可以用來命名所有現存對象,也可以很方便地包含一些新格式。但它并不完美,它們表示的是實際的地址而不是準確的名字,這就意味著如果資源被移走了,URL也就失效了(404 not found)。URN就是為了應對這種情況的,無論對象搬移到什么地方,URN都能為對象提供一個穩定的名稱。當然,URN背后的思想已經提出一段時間了,但是從URL轉換成URN是一項巨大的工程,標準化工作的進程非常緩慢,所以現在因特網資源仍以URL來命名,而且這種趨勢仍會保持相當長一段時間。
新聞熱點
疑難解答