1. 程式人生 > 其它 >url和uri區別

url和uri區別

技術標籤:筆記

在這裡插入圖片描述


這兩天在寫程式碼的時候,由於涉及到資源的位置,因此,需要在Java Bean中定義一些欄位,用來表示資源的位置,比如:imgUrl,logoUri等等。但是,每次定義的時候,心裡都很糾結,是該用imgUrl還是imgUri呢?同樣的,另外一個問題:String HttpServletRequest.getRequestURI();和StringBuffer HttpServletRequest.getRequestURL();返回的內容有何不同?為什麼會如此?帶著這些問題到網上去搜了下,沒發現讓自己看了明白的解釋,於是,想到了Java類庫裡有兩個對應的類java.net.URI和java.net.URL,終於,在這兩個類裡的javadoc裡找到了答案。URIs, URLs, and URNs首先,URI,是uniform resource identifier,統一資源識別符號,用來唯一的標識一個資源。而URL是uniform resource locator,統一資源定位器,它是一種具體的URI,即URL可以用來標識一個資源,而且還指明瞭如何locate這個資源。而URN,uniform resource name,統一資源命名,是通過名字來標識資源,比如mailto:
[email protected]
。也就是說,URI是以一種抽象的,高層次概念定義統一資源標識,而URL和URN則是具體的資源標識的方式。URL和URN都是一種URI。在Java的URI中,一個URI例項可以代表絕對的,也可以是相對的,只要它符合URI的語法規則。而URL類則不僅符合語義,還包含了定位該資源的資訊,因此它不能是相對的,schema必須被指定。ok,現在回答文章開頭提出的問題,到底是imgUrl好呢,還是imgUri好?顯然,如果說imgUri是肯定沒問題的,因為即使它實際上是url,那它也是uri的一種。那麼用imgUrl有沒有問題呢?此時則要看它的可能取值,如果是絕對路徑,能夠定位的 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 Co2f84fScU3/HsVXFSuKLg==