url和uri區別

xmh_sxh_1314發表於2020-12-03

在這裡插入圖片描述這兩天在寫程式碼的時候,由於涉及到資源的位置,因此,需要在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:java-net@java.sun.com。也就是說,URI是以一種抽象的,高層次概念定義統一資源標識,而URL和URN則是具體的資源標識的方式。URL和URN都是一種URI。在Java的URI中,一個URI例項可以代表絕對的,也可以是相對的,只要它符合URI的語法規則。而URL類則不僅符合語義,還包含了定位該資源的資訊,因此它不能是相對的,schema必須被指定。ok,現在回答文章開頭提出的問題,到底是imgUrl好呢,還是imgUri好?顯然,如果說imgUri是肯定沒問題的,因為即使它實際上是url,那它也是uri的一種。那麼用imgUrl有沒有問題呢?此時則要看它的可能取值,如果是絕對路徑,能夠定位的,那麼用imgUrl是沒問題的,而如果是相對路徑,那還是不要用ImgUrl的好。總之,用imgUri是肯定沒問題的,而用imgUrl則要視實際情況而定。

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

相關文章