2.1 URI與URL、URNhtml
例:http://www.yahoo.com/image/logo.gifsql
上例中:第一部分:http://數據庫
第二部分:www.yahoo.com數組
第三部分:image/logo.gif瀏覽器
2.2 URL的語法服務器
URL基本由九部分組成:方案、用戶、密碼、主機、端口、路徑、參數、查詢、片斷網絡
方案實際上就是規定如何訪問資源的主要標識符,負責告訴解析URL的應用程序使用的是什麼協議。ide
方案組件必須以字母符號開始,且在URL中由第一個:將其與主體部分分開。加密
在URL中主機能夠是相似「www.baidu.com」這種服務器名稱,也能夠是「192.168.1.3」這種IP地址,主要標識的是URL訪問的具體服務器視頻
端口組件標識了服務器正在監聽的網絡端口。
不少服務器是須要用戶名和密碼才能夠登陸訪問數據的,舉例以下:
ftp://ftp.prep.ai.edu/pub/gnu
該例沒有用戶名和密碼部分,只是標準的方案、主機和路徑,若是所訪問的服務器須要用戶名和密碼而用戶沒有主動填寫,它一般會自動添加默認用戶名(anonymous)和密碼(IE會設置爲IEUser)。
ftp://anonymous@ftp.prep.ai.edu/pub/gnu
該例是anonymous爲用戶名,用@將用戶名和其餘部分隔離開。
ftp://anonymous:password@ftp.prep.ai.edu/pub/gnu
該例和上例相似,只是增長了密碼組件部分,用戶名和密碼之間用「:」隔開。
路徑是URL訪問服務器資源時尋找資源的具體位置的路徑,其標識用「/」將各路徑段鏈接在一塊兒,組成完整路徑。
對不少方案來講,只有簡單的用戶名、密碼、路徑等信息是不足夠的,還須要某些參數,負責解析URL的應用程序能夠根據這些參數來訪問資源。
好比FTP協議有兩種傳輸模式,二進制和文本形式,在具體使用總,如何選擇傳輸模式就是靠參數組件來設置了。
其格式爲:由「;」將其與其餘部分分隔開,例:ftp://ftp.prep.ai.edu/pub/gnu;type=d
訪問某些資源時可能其內容過於龐大,而訪問所需資源是某些小部份內容,此時須要查詢字符串。
例:訪問數據庫。假如數據庫內有物品清單,並能夠對清單內物品進行查看是否有貨,則能夠用下列URL訪問
查看編號爲12341的物品:http://www.sqlwp.com/store?item=12341
其格式爲:用符號「?」將其與其餘組件部分隔開,如需多個參數則在參數與參數間用符號「&」隔開。
例:http://www.sqlwp.com/store?item=12341&color=blue
有些資源類型,好比HTML,除資源級能夠劃分外,還能夠作進一步劃分。
好比訪問資源是一個大型帶有章節的文檔,理想的狀況時訪問某個章節,此時須要使用片斷組件。
片斷組件掛在URL的右手邊,最前面加個符號#與其餘部分分割。
例:http://www.sqlwp.com/store#color=blue
2.3 方案
格式:http://host:port/path?query#frag
示例:http://localhost.com:80/index.html
格式:https://host:port/path?query#frag
示例:https://localhost.com:80/index.html
格式:mailto:RCF-822-addr-spec
示例:mailto:joe@joes-hard.com
格式:ftp://user:password@host:port/path;param
示例:ftp://anonymous:password@ftp.prep.ai.edu/pub/gnu
格式:rtsp://user:password@host:port/path
示例:rtsp://www.joes-hard.com:554/video
格式:file://host/path
示例:file://localhost/words/111.doc
格式:telnet://user:password@host:port/
示例:telnet://www.joes-hard.com:554/