URL與資源
本章將介紹:
- URL語法,以及各種URL組件的含義及其所做的工作
- 很多web客戶端都支持的URL快捷方式,包括相對URL和自動擴展URL
- URL編碼和字符規範
- 支持各種因特網信息系統的常見URL方案
- URL的未來
1. 瀏覽因特網資源
大多數URL都有同樣的:“方案://服務器位置/路徑“結構
URL未用戶以及他們的瀏覽器提供了找到信息所需的所有條件,URL定義了用戶所需的特定資源,它位於何處以及如何獲取它
2. URL的語法
URL隨着方案的不同而有所不同
URL的通用格式如下
<scheme>://<user>:<password>@<host>:<port>/<path>;<params>?<query>#<frag>
- 方案
方案告訴負責解析URL的應用程序應該使用什麼協議,用冒號與其它部分分隔,大小寫無關的 - 主機與端口
主機組件標示了因特網上能夠訪問資源的宿主機器(主機名或IP地址),端口組件標示了服務器正在監聽的網絡端口,對下層使用了TCP協議的http來說,默認端口是80 - 用戶名和密碼
很多服務器都要求輸入用戶名和密碼纔會允許用戶訪問數據,ftp服務器就是這樣
ftp://anonymous:my_passwd@ftp.prep.ai.mit.edu/pub/gnu
- 路徑
路徑組件說明了資源位於服務器的什麼地方,通常很像一個分級的文件系統路徑 - 參數
爲了嚮應用程序提供它們所需的輸入參數,以便正確的與服務器進行交互,URL中有一個參數組件,它們爲應用程序提供了訪問資源所需的附加信息
ftp://prep.ai.mit.edu/pub/gnu;tpye=d
路徑組件可以分爲若干路徑段,每段都可以有自己的參數
http://www.joes-hardware.com/hammers;sale=false/index.html;graphics=true
- 查詢字符串
很多資源,比如數據庫服務,都是可以通過提問題或進行查詢來縮小所請求資源類型範圍的
http://www.joes-hardware.com/inventory-check.cgi?item=12731
?右邊的是查詢組件,URL的查詢組件和標示網關資源的URL路徑組件一起別發送給網關資源
- 片段
爲了引用部分資源或資源的一個片段,片段組件表示一個資源內部的片段。http服務器通常只處理整個對象,瀏覽器從服務器獲得整個資源之後,會根據片段來顯示你感興趣的那部分資源
http://www.joes-hardware.com/tools.html#drills
URL快捷方式
web客戶端可以理解並使用幾種URL快捷方式,包括相對URL和URL的自動擴展- 相對URL
URL有兩種方式:絕對的和相對的。絕對URL包含訪問資源所需的全部信息
相對URL是不完整的,要從相對URL中獲取訪問資源的全部信息,就必須相對於一個被稱爲基礎的URL進行解析
相對URL是URL的一種便捷縮略記法
相對URL爲保持一組資源的便捷性提供了一種便捷的方式,可以在半一一組文件的同時,仍然保持鏈接的有效性
由相對URL轉換到絕對URL的第一步就是找到基礎URL,基礎URL由三種方式: - 在資源中顯示提供
有些資源會顯示指定基礎URL,比如HTML文檔中可能包含了一個定義了基礎URL的HTML標記 - 封裝資源的基礎URL
沒有顯示指定基礎URL,可以將該資源的URL作爲基礎 沒有基礎URL
這通常意味着有一個相對URL,但有時可能是一個不完整或損壞的URL自動擴展URL
用戶不需要輸入完整的URL,瀏覽器會自動擴展
這些擴展有兩種方式:- 主機名擴展
只要一些小提示,瀏覽器就可以將我們輸入的主機名擴展爲完整的主機名 - 歷史擴展
將以前用戶訪問過的URL歷史保存起來,當我們輸入URL是,將輸入URL與歷史記錄中的URL的前綴進行匹配,並提供一些完整的選項供我們選擇
- 相對URL
各種令人頭疼的字符
URL是可移植的,能被因特網任意協議安全傳輸,而且是可讀的,完整的- URL字符集
ASCII和轉義序列 - 編碼機制
通過“轉義”表示法來表示不安全的字符,包含一個百分號(%),後面跟着兩個表示字符的ASCII碼的十六進制,例如: - ~ 0x7E
http://www.joes-hardware.com/%7Ejoe
- 空格 0x20
http://www.joes-hardware.com/more%20tools.html
% 0x25
http://www.joes-hardware.com/100%25satisfaction.html
字符限制
在URL中,有幾個字符被保留起來,有着特殊的含義
- URL字符集
- 方案
- http
超文本傳輸協議方案,沒有用戶名和密碼,默認端口是80 - https
與http唯一的區別在於https使用了網景的SSL,提供了端到端的加密機制,默認端口是443 - mailto
mailto URL指向的是E-mail地址 - ftp
文件傳送協議URL可以從ftp服務器上下載或向其上載文件 - rtsp,rtspu
RTSP URL是可以通過實時流傳輸協議解析的音/視頻媒體資源的標識符 - file
方案file表示一臺指定主機上可直接訪問的文件 - news
方案news用來訪問一些特定的文章或新聞組 - telnet
方案telnet用於訪問交互式業務
- http