URL語法
http://www.baidu.com/index/1.html(協議名,主機名,(端口號),路徑名)
方案(協議):不區分大小寫。
主機名:標識了能夠訪問資源的宿主機器,可以用主機名或IP地址表示。
端口號:服務器正在監聽的網絡端口。下層使用了TCP協議的HTTP默認為80。
用戶名和密碼:FTP協議就需要輸入用戶名和密碼。
路徑:說明了資源位于服務器的什么地方,像一個分級文件系統路徑。
參數:是名值對列表,提供了訪問資源的所有附加信息,用“;”將其他部分分隔開。如“;type=d”。而且在路徑中每段都可以有參數。
查詢字符串:用來縮小請求資源類型范圍。“?color=blue&size=large”。
片段:引用部分資源或資源的一個片段,“#index”。
HTTP服務器只處理整個對象,而不是對象的片段,客戶端不能將片段傳送給服務器。瀏覽器從服務器獲得了整個資源后,會根據片段顯示需要的部分資源。所以,URL片段僅由客戶端使用。
相對URL
相對它所在文檔的URL。通過文檔的基礎URL,推導出其完整的URL。
HTML文檔中會包含<BASE>標簽定義了基礎的URL。用來轉換所有相對的URL。如果沒有顯示指定,會將所屬資源的URL作為基礎URL。如果沒有基礎URL,就只是一個損壞了的URL。
自動擴展URL
主機名擴展:比如輸入yahoo,會自動構建www.yahoo.com,如果找不到,就放棄之前的擴展。
歷史擴展:將以前用戶輸入過的URL歷史存起來,輸入時就會自動與歷史記錄中進行匹配,提供完整的供你選擇。
URL編碼
URL字符集通常以英語為中心,通常以US-ASCII字符集,加入轉義序列后,就可以對任意字符值或數據進行編碼,很多協議都可以識別,實現了可移植性和完整性。
URL展望
因為URL只能定位資源所在的位置,如果改變了位置,就找不到。通過一個中間層資源定位符服務器對實際URL進行登記和跟蹤。客戶端可以向定位符請求一個永久URL,定位符以一個資源作為響應,將客戶端重定向到資源當前實際的URL上去。但是URL還有大量的能量,URN還很遙遠。