URI,是uniform resource identifier,統一資源標識符,用來唯一的標識一個資源。而URL是uniform resource locator,統一資源定位器,它是一種具體的URI,即URL可以用來標識一個資源,而且還指明了如何locate這個資源。而URN,uniform resource name,統一資源命名,是通過名字來標識資源。 也就是說,URI是以一種抽象的,高層次概念定義統一資源標識,而URL和URN則是具體的資源標識的方式。
URI的抽象結構
//最基本的划分 [scheme:]scheme-specific-part[#fragment] //對scheme-specific-part進一步划分 [scheme:][//authority][path][?query][#fragment] //對authority再次划分, 這是最細分的結構 [scheme:][//host:port][path][?query][#fragment]
下面通過代碼展示Uri類如何獲取上面各個部分的
Uri uriAddress = new Uri("http://www.aiaide.com:8080/Home/index.htm?a=1&b=2#search"); Console.WriteLine(uriAddress.Scheme); Console.WriteLine(uriAddress.Authority); Console.WriteLine(uriAddress.Host); Console.WriteLine(uriAddress.Port); Console.WriteLine(uriAddress.AbsolutePath); Console.WriteLine(uriAddress.Query); Console.WriteLine(uriAddress.Fragment); //通過UriPartial枚舉獲取指定的部分 Console.WriteLine(uriAddress.GetLeftPart(UriPartial.Path)); //獲取整個URI Console.WriteLine(uriAddress.AbsoluteUri);
GetLeftPart 方法返回一個字符串,包含與指定的部分結束的 URI 字符串的最左側部分, 具體含義參考下面的表格中UriPartial的枚舉含義.
成員名稱 | 說明 |
---|---|
Scheme |
包括URI 的方案段。 |
Authority |
包括URI 的方案段與頒發機構段。 |
Path |
包括URI 的方案段、頒發機構段與路徑段。 |
Query |
包括URI 的方案段、證書頒發機構段、路徑段與查詢段。 |