国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網管 > 網絡管理 > 正文

URL統一資源定位符的完全解讀

2020-10-21 19:18:58
字體:
來源:轉載
供稿:網友

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):

復制代碼
代碼如下:

<scheme>://<user>:<password>@<host>:<port>/<path>;<params>?<query>#<frag>

方案(scheme):它會告訴負責解析URL的應用程序應該使用什么協議,其大小寫無關。一般有http、https、ftp、mailto、telnet等等。例子:
復制代碼
代碼如下:
</font>http://www.baidu.com

主機與端口(host、port):主機標識了因特網上能夠訪問資源的宿主機器,可用主機名(域名)或IP地址表示;端口標識了服務器正在監聽的網絡端口,對下層使用TCP協議的HTTP來說,默認端口號為80。例子:http://115.156.216.106:3000
用戶名與密碼(user、password):有一些服務器需要用戶輸入用戶名和密碼才允許訪問數據。若URL是FTP協議而沒有指定這兩者,瀏覽器會自動插入“anonymous”和一個默認密碼。例子:
復制代碼
代碼如下:
ftp://anonymous:my_passwd@ftp.prep.ai.mit.edu/pub/gnu

路徑(path):說明了資源位于服務器的什么地方,通常像一個分級的文件系統路徑。例子:
復制代碼
代碼如下:
http://localhost:3000/css/common.css

參數(params):向應用程序提供它們所需的輸入參數,以便正確地與服務器進行交互,形式為key-value對列表,由“;”將其與URL其余部分分隔開來。例子:
復制代碼
代碼如下:
ftp://prep.ai.mit.edu/pub/gnu;graphics=true

查詢字符串(query):可以通過查詢字符串來縮小所請求資源的范圍,形式同樣為key-value對,之間用字符“&”分隔,由“?”將其與URL其余部分分隔開來。例子:
復制代碼
代碼如下:
http://localhost/test?id=123&show=false

片段(frag):表示一個資源內部的片段,通常用于在頁面中設置“書簽”并實現頁內跳轉。片段出現在URL的最右邊,前面有一個字符“#”。注意客戶端不會將片段發送到服務器,瀏覽器從服務器獲得整個資源后,會根據片段在頁內跳轉到指定的位置。例子:
復制代碼
代碼如下:
http://localhost/test#hehe

2. URL快捷方式
URL有兩種方式:絕對的和相對的。像上面列舉的都是絕對URL,包含了訪問資源所需的全部信息。相對URL是一種簡寫方式,需要相對一個基礎URL進行解析。
相對URL到絕對URL的轉換處理,首先是要找到基礎URL,一般可以顯示提供(比如HTML文檔定義一個標簽顯式指定基礎URL),或者在封裝資源中提供(比如HTML文檔中的a標簽鏈接,其基礎URL就是這個HTML文檔本身)。接著就是通過以下算法把相對URL轉換成絕對URL。
2016616120208810.jpg (828×752)

3. URL字符與編碼
通常來說,URL采用的是US-ASCII字符集,但是這有很多局限性,因此用一種“轉義”表示法來表示不安全字符,通過這種編碼機制來避開各種限制。這種轉義表示法包含一個百分號“%”,后面跟著兩個表示ASCII字符的十六進制數。例如URL中的“~”編碼成“%7E”,空格編碼成“%20”,“%”編碼成“%25”。此外URL還有一些字符用作保留字符,如%/.#?;:@&=等等,此處不再贅述。
URL是一種強有力的工具,可以用來命名所有現存對象,也可以很方便地包含一些新格式。但它并不完美,它們表示的是實際的地址而不是準確的名字,這就意味著如果資源被移走了,URL也就失效了(404 not found)。URN就是為了應對這種情況的,無論對象搬移到什么地方,URN都能為對象提供一個穩定的名稱。當然,URN背后的思想已經提出一段時間了,但是從URL轉換成URN是一項巨大的工程,標準化工作的進程非常緩慢,所以現在因特網資源仍以URL來命名,而且這種趨勢仍會保持相當長一段時間。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 河间市| 永年县| 武宁县| 大姚县| 东台市| 额尔古纳市| 都匀市| 阳江市| 贵南县| 遂昌县| 瓮安县| 南宁市| 府谷县| 石城县| 景洪市| 和林格尔县| 龙州县| 永康市| 周宁县| 汤阴县| 永顺县| 班玛县| 垦利县| 石城县| 屏东市| 师宗县| 广平县| 洪洞县| 隆回县| 乌海市| 青浦区| 祁连县| 彰武县| 宜阳县| 鄱阳县| 兰溪市| 运城市| 喀喇| 金乡县| 沂源县| 龙川县|