初識(shí)URL和URI
URI
URI,uniform resource identifier擅腰,統(tǒng)一資源標(biāo)識(shí)符叠蝇,用來(lái)唯一地標(biāo)識(shí)一個(gè)資源。格式為[scheme:]scheme-specific-part[#fragment]
- [scheme:]組件:URI的名稱(chēng)空間標(biāo)識(shí)铸鹰。(大概是一種協(xié)議吧癌别,不是很理解...)
- scheme-specific-part組件:用于標(biāo)識(shí)資源,內(nèi)部格式由具體的
scheme
來(lái)決定蹋笼。 - [#fragment]組件:井號(hào)(#)作為fragment組件的起始字符展姐,而fragment組件則用于聚焦到資源的某個(gè)部分。
scheme-specific-part組件
分層URI語(yǔ)法中scheme-specific-part組件的格式為:[//authority][path][?query]
- [//authority]:表示授權(quán)機(jī)構(gòu)組件剖毯,以一對(duì)正斜杠(//)起始圾笨,可以基于主機(jī)(server-based)或注冊(cè)(registry-based)(而基于注冊(cè)相對(duì)基于主機(jī)的數(shù)目較少),并以正斜杠逊谋、問(wèn)號(hào)或無(wú)后續(xù)字符作為authority組件的結(jié)束擂达。而authority組件的具體格式為 [userinfo@]host[:port]。
- [userinfo@]:用戶(hù)賬號(hào)胶滋。
- host:主機(jī)IP或域名板鬓。
- [:port]:通信端口號(hào)悲敷,若省略則使用相應(yīng)的scheme組件的默認(rèn)端口號(hào)。
(例如:http://fsjohnhuang@github.com:80/)
- [path]:path組件表示根據(jù)authority組件識(shí)別資源的位置俭令。path組件有一系列的路徑片段(path segment)構(gòu)成后德,路徑片段間以正斜杠(/)作為分隔符。若第一個(gè)路徑片段以正斜杠(/)起始則為絕對(duì)路徑抄腔,否則稱(chēng)為相對(duì)路徑瓢湃。
- [?query]:query組件用于識(shí)別要傳遞給資源的數(shù)據(jù),用于影響資源的響應(yīng)的行為妓柜。
URL
URL箱季,uniform resource locator,統(tǒng)一資源定位器棍掐,它是一種具體的URI藏雏,即URL可以用來(lái)標(biāo)識(shí)一個(gè)資源,而且還指明了如何locate(定位)這個(gè)資源作煌。它是一個(gè)識(shí)別Internet中哪里有信息資源掘殴,并且將 Internet提供的服務(wù)統(tǒng)一編址的系統(tǒng)。通過(guò)URL可以到達(dá)任何一個(gè)地方尋找需要的東西粟誓,比如文件奏寨、數(shù)據(jù)庫(kù)、圖像鹰服、新聞組等等病瞳,可以這樣說(shuō),URL是 Internet上的地址簿悲酷。其URL地址格式排列為:scheme://host:Port/path套菜。
- scheme:Internet資源類(lèi)型,指出客戶(hù)程序用來(lái)操作的工具。如“http://”表示W(wǎng)WW服務(wù)器设易,“ftp://”表示FTP服務(wù)器逗柴,“gopher://”表示Gopher服務(wù)器,而“new:”表示Newgroup新聞組顿肺。
- host:服務(wù)器地址,指出網(wǎng)頁(yè)所在的服務(wù)器域名或ip戏溺。
- Port:端口,對(duì)某些資源的訪(fǎng)問(wèn)來(lái)說(shuō)屠尊,需給出相應(yīng)的服務(wù)器提供端口號(hào)(并非必須)旷祸。
- path:路徑,指明服務(wù)器上某資源的位置(其格式與DOS系統(tǒng)中的格式一樣讼昆,通常有目錄/子目錄/文件名這樣結(jié)構(gòu)組成)肋僧。與端口一樣,路徑并非總是需要的。
例如http://www.juese.com/PUREdesert/magazine/puredesert_magazine.htm就是一個(gè)典型的URL地址嫌吠。
通信端口號(hào)(port number),是連接時(shí)所使用的通信端口號(hào)掺炭。端口是Internet用來(lái)辨別特定信息服務(wù)用的一種軟件標(biāo)識(shí)辫诅,其設(shè)置范圍是0到65535之間的整數(shù),一般情況下使用的是標(biāo)準(zhǔn)端口號(hào)涧狮,可以不用寫(xiě)出炕矮。在需要特殊服務(wù)時(shí)會(huì)用到非標(biāo)準(zhǔn)端口號(hào),這時(shí)就要寫(xiě)出者冤,如http://www.tsinghua.edu.cn:81肤视。常見(jiàn)的Internet提供服務(wù)的端口號(hào),如HTTP的標(biāo)準(zhǔn)端口號(hào)為80涉枫,TELNET的標(biāo)準(zhǔn)端口號(hào)為23邢滑,F(xiàn)TP的標(biāo)準(zhǔn)端口號(hào)為21等等。
總結(jié)
URI是以一種抽象的愿汰,高層次概念定義統(tǒng)一資源標(biāo)識(shí)困后,而URL則是具體的資源標(biāo)識(shí)的方式。URL也是一種URI衬廷。URI是一個(gè)相對(duì)來(lái)說(shuō)更廣泛的概念摇予,URL是URI的一種,是URI命名機(jī)制的一個(gè)子集吗跋,可以說(shuō)URI是抽象的侧戴,而具體要使用URL來(lái)定位資源。URL是internet上用來(lái)描述信息資源文件的字符串跌宛,用在客戶(hù)程序和服務(wù)器上酗宋,定位客戶(hù)端連接服務(wù)器所需要的信息,它不僅定位了這個(gè)信息資源秩冈,而且定義了如何找到這個(gè)資源本缠。(相對(duì)URI和絕對(duì)URI不是很理解)