HTTP權(quán)威指南Ch2-URL和資源 筆記

第二章 URL與資源
2.1 瀏覽因特網(wǎng)資源
URL是通過描述資源的位置來標(biāo)識資源的疫诽,而URN是通過名字來識別資源的蛉威,與他們當(dāng)前所處位置無關(guān)
2.2 URL的語法
大多數(shù)URL方案的URL語法都建立在9部分構(gòu)成的通用格式上。<scheme>://<user>:<password>@<host>:<port>/<path>;<params>?<query>#<frag>
方案告訴負責(zé)解析URL的應(yīng)用程序該使用什么協(xié)議雇锡,方案名是大小寫無關(guān)的箫锤。
主機和端口贬蛙,用主機名或IP地址來表示主機名,很多協(xié)議有默認的端口谚攒。
用戶名和密碼阳准,用戶名和密碼間由字符“:”分隔,該組件與URL其他部分用“@”分隔馏臭。有時應(yīng)用程序會插入缺省的值
路徑很像一個分級的文件系統(tǒng)路徑溺职,每個路徑都有自己的參數(shù)組件
參數(shù)組件式URL中的名值對列表,由前置字符“位喂;”將其與URL的其余部分分隔,它們?yōu)閼?yīng)用程序提供了訪問資源所需的所有附加信息乱灵。比如像FTP協(xié)議有二進制和文本形式兩種傳輸模式塑崖,如/ham;sale=f/index.html;type=d
查詢字符串以一系列“名/值“對的形式出現(xiàn),名值對之間用字符”&“分隔痛倚,如...sale/?item=777&color=red
片段规婆,有些資源類型,比如HTML蝉稳,除資源級之外抒蚜,還可以做進一步的劃分,片段組件可以用來表示一個資源內(nèi)部的片段耘戚。比如一個帶有章節(jié)的大型文本文檔嗡髓,指定資源中的章節(jié)。HTTP服務(wù)器通常只處理整個對象收津,而不是對象的片段饿这,客戶端不能將片段傳送給服務(wù)器,瀏覽器從服務(wù)器獲得了整個資源后撞秋,會根據(jù)片段來顯示對應(yīng)的部分資源
2.3 URL的快捷方式
解析相對URL的第一步是找到基礎(chǔ)URL长捧,然后利用解析算法轉(zhuǎn)換成絕對URL,算法分別檢測相對URL吻贿,判斷是否繼承方案串结,用戶、密碼、主機肌割、端口卧蜓,路徑,參數(shù)声功,查詢
自動擴展URL烦却,一些瀏覽器會有主機名擴展和歷史擴展
2.4 各種令人頭疼的字符
考慮到對URL字符集的完整性需求,URL的設(shè)計者將轉(zhuǎn)義序列集成進來先巴。通過轉(zhuǎn)義序列其爵,可以用US-ASCII字符集的有限子集對任意字符值或數(shù)據(jù)進行編碼,實現(xiàn)了可移植性和完整性伸蚯。用%后跟相應(yīng)字符的16進制數(shù)表示摩渺。
字符限制,URL中剂邮,有一些字符被保留起來摇幻,有著特殊含義,將其用于保留用途之外的場合時挥萌,要在URL中對其進行轉(zhuǎn)義編碼
2.5 方案的世界
常見的方案格式有:http(80),https(443),mailto(RFC822),ftp(21),rtsp绰姻、rtspu(Real Time Streaming Protocol),file(若省略主機名,就默認為在使用URL的本地主機),news(RFC1036,news URL自身包含的信息不足以對資源進行定位引瀑,需要配置指定的NNTP服務(wù)器狂芋,被稱為與位置無關(guān)),telnet(用于訪問交互式業(yè)務(wù))
2.6 未來展望
PURL(persistent uniform resource locators)使用URL來實現(xiàn)URN功能的一個例子,其基本思想是在搜索資源的過程中引入另一個中間層憨栽,通過一個中間資源定位符服務(wù)器對資源的實際URL進行登記和跟蹤帜矾。URL的一些限制并不是Web開發(fā)社區(qū)所面臨的最緊迫的問題