1. 程式人生 > >URI和URL的區別(轉)

URI和URL的區別(轉)

ado 網絡資源 時也 fontsize 能夠 ren 文檔 自身 p地址

1說明:

這段時間寫android的時候用到了URLURI,有點分不清楚,於是做了一個系統性的學習。在這裏將自己的學習筆記粘貼出來,希望對大家有幫助。

1)Java類庫裏有兩個對應的類java.net.URL和java.net.URI,官方的定義分別如下:

(URL)A Uniform Resource Locator thatidentifies the location of an Internet resource as specified by RFC 1738.(統一資源定位符用於標示網絡資源的位置)

(URI,統一資源標識符)A Uniform Resource Identifier

that identifies an abstract or physical resource, as specified by RFC 2396.(統一資源標識符用於標示一個抽象或者物理資源)

2)也就是說URI是以一種抽象的,高層次概念定義統一資源標識,而URL則是具體的資源標識的方式。URL是一種URI。

3)URL,URI具體定義方式(來自android官方文檔)

技術分享圖片

技術分享圖片

URL的格式一般由下列三部分組成:

第一部分是協議(或稱為服務方式);

第二部分是存有該資源的主機IP地址(有時也包括端口號);

第三部分是主機資源的具體地址。

URI一般由三部分組成:

訪問資源的命名機制。

存放資源的主機名。

資源自身的名稱,由路徑表示。

4)在Java的URI中,一個URI實例可以代表絕對的,也可以是相對的,只要它符合URI的語法規則。而URL類則不僅符合語義,還包含了定位該資源的信息,因此它不能是相對的,schema(protocol)必須被指定。

2舉例:

1) 大家平常用圖片的時候。到底是imgUrl好呢,還是imgUri好?顯然,如果說imgUrl是肯定沒問題的,因為即使它實際上是url,那它也是uri的一種。那麽用imgUri

有沒有問題呢?此時則要看它的可能取值,如果是絕對路徑,能夠定位的,那麽用imgUri是沒問題的,而如果是相對路徑,那還是不要用ImgUri的好。總之,用imgUrl是肯定沒問題的,而用imgUri則要視實際情況而定。

2)StringHttpServletRequest.getRequestURI();和StringBufferHttpServletRequest.getRequestURL();返回的內容有何不同?為什麽會如此?

從HttpServletRequest的javadoc中可以看出,getRequestURI返回一個String,“the part of this request’s URL from theprotocol name up to the query string in the first line of the HTTP request”,比如“POST/some/path.html?a=b HTTP/1.1”,則返回的值為”/some/path.html”。現在可以明白為什麽是getRequestURI而不是getRequestURL了,因為此處返回的是相對的路徑。而getRequestURL返回一個StringBuffer,“The returned URL contains a protocol, server name, port number, andserver path, but it does not include query string parameters.”,完整的請求資源路徑,不包括querystring。

3) URL示例

文件的URL:用URL表示文件時,服務器方式用file表示,後面要有主機IP地址、文件的存取路徑(即目錄)和文件名等信息。有時可以省略目錄和文件名,但“/”符號不能省略。

例(3.1):file://ftp.linkwan.com/pub/files/foobar.txt

代表存放主機ftp.linkwan.com上的pub/files/目錄下的一個文件,文件名是foobar.txt。

例(3.2):file://ftp.linkwan.com/pub

代表主機ftp.linkwan.com上的目錄/pub。

例(3.3):file://ftp.linkwan.com/

代表主機ftp.linkwan.com上的根目錄。

例(3.4):http://homepage.yesky.com/175/2603675.shtml

HTTP的URL:使用超級文本傳輸協議HTTP,提供超級文本信息服務的資源。

其計算機域名為homepage.yesky.com。超級文本文件(文件類型為.shtml)是在目錄/175下的2603675.shtml。這是天極網的一臺計算機。

4) 統一資源定位器(URL)指的是Internet文件在網上的地址。好比一個街道在城市地理上地址。URL使用數字和字母按一定順序排列以確定一個地址。比如,要是有一個人的地址是:

510665 廣州市天河科韻路18號 梁大頭

你會想到,梁大頭是一個人名,他住在廣州市天河科韻路18號,郵政編碼是510665。

3:總結

參考了的網站:

http://www.cnblogs.com/gaojing/archive/2012/02/04/2413626.html

http://blog.csdn.net/niuox/article/details/7312843

http://cs.szpt.edu.cn/android/reference/java/net/URI.html (官方)

http://cs.szpt.edu.cn/android/reference/java/net/URL.html (官方)

http://www.cnblogs.com/devinzhang/archive/2012/01/08/2316443.html

URI和URL的區別(轉)