国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

Java網絡編程之URI、URL研究專題一(圖)

2019-11-18 10:46:18
字體:
來源:轉載
供稿:網友

  URI、URL和URN是識別、定位和命名互聯網上的資源的標準途徑。本文分析了URI、URL和URN和java API的URI和URL類(以及與URL相關的類),并演示了如何在程序中使用這些類。
  
  1989年Tim Berners-Lee發明了互聯網(World Wide Web)。WWW被認為是全球互連的實際的和抽象的資源的集合--它按需求提供信息實體--通過互聯網訪問。實際的資源的范圍從文件到人,抽象的資源包括數據庫查詢。
  
  因為要通過多樣的方式識別資源(人的名字可能相同,然而計算機文件只能通過唯一的路徑名稱組合訪問),所以需要標準的識別WWW資源的途徑。為了滿足這種需要,Tim Berners-Lee引入了標準的識別、定位和命名的途徑:URI、URL和URN。
  
  URI、URL和URN是什么?
  
  體系中的URI、URL和URN是彼此關聯的。URI的范疇位于體系的頂層,URL和URN的范疇位于體系的底層。這種排列顯示URL和URN都是URI的子范疇,如圖1所示:
  
Java網絡編程之URI、URL研究專題一(圖)

  圖1:URI、URL和URN之間的層次關系。URL和URN是URI的子范疇
  
  URI表示的是統一的資源標識,它是以某種統一的(標準化的)方式標識資源的簡單字符串。典型情況下,這種字符串以scheme(命名URI的名字空間的標識符--一組相關的名稱)開頭,語法如下:
  
  [scheme:] scheme-specific-part
  
  URI以scheme和冒號開頭。Scheme用大寫/小寫字母開頭,后面為空或者跟著更多的大寫/小寫字母、數字、加號、減號和點號。冒號把scheme與scheme-specific-part分開了,并且scheme-specific-part的語法和語義(意思)由URI的名字空間決定。
  
  其中一個例子是http://www.cnn.com,其中http是scheme,//http://www.cnn.com是 scheme-specific-part,并且它的scheme與scheme-specific-part被冒號分開了。
  
  我們可以把URI按照絕對的或相對的分類。絕對的URI指以scheme(后面跟著冒號)開頭的URI。前面提到的http://www.cnn.com就是絕對的URI的一個例子,其它的例子還有mailto:jeff@javajeff.com、news:comp.lang.java.help和xyz://whatever。你可以把絕對的URI看作是以某種方式引用某種資源,而這種方式對標識符出現的環境沒有依靠。
  
  假如使用文件系統作類比,絕對的URI類似于從根目錄開始的某個文件的路徑。與絕對的URI不同的,相對的URI不是以scheme(后面跟著冒號)開始的URI。
  
  它的一個例子是articles/articles.Html。你可以把相對的URI看作是以某種方式引用某種資源,而這種方式依靠于標識符出現的環境。假如用文件系統作類比,相對的URI類似于從當前目錄開始的文件路徑。
  
  URI可以進一步分為不透明的和分層的兩類。不透明的URI指scheme-specific-part不是以正斜杠(/)開頭的絕對的URI。
  
  其例子有news:comp.lang.java和前面的mailto:jeff@javajeff.com。不透明的URI并不是用于分解的(超出了識別scheme的范疇),因為不需要驗證scheme-specific-part的有效性。與它不同的是,分層的URI可以是以正斜杠開頭的絕對的URI或相對的URL。
  
  與不透明的URI不同,分層的URI的scheme-specific-part必須被分解為幾個組成部分。這些組成部分是什么?分層的URI標識組件的普通子集的scheme-specific-part符合下面的語法:
  
  [//authority] [path] [?query] [#fragment]
  
  可選的authority組件標識了該URI名字空間的命名機構。假如有這一部分,它就是以一對正斜杠開始的,它可以是基于服務器或基于注冊的,并且它以后面的正斜杠、問號或沒有其它符號結束。基于注冊的授權機構組件有特定大綱的語法(本文沒有討論,因為很少使用它),而基于服務器的授權機構組件的語法如下:
  
  [userinfo@] host [:port]
  
  按照這種語法,基于服務器的授權機構組件可以隨意的以用戶信息(例如用戶名)開始,后面跟著一個@符號,緊接著是主機的名稱,以及冒號和端口號。例如jeff@x.com:90就是一個基于服務器的授權機構組件,其中jeff包含了用戶信息,x.com包含了主機,90包含了端口。
  
  可選的path組件根據授權機構組件(假如提供了)或大綱(假如沒有授權機構組件)識別資源的定位(或位置)。路徑(path)可以分成一系列的路徑片斷(path segment),每個路徑片斷使用正斜杠與其它的路徑片斷隔開。
  
  假如路徑的第一個路徑片斷以一個正斜杠開始,該路徑就被認為是絕對的。否則路徑就被認為是相對的。例如,/a/b/c由三個路徑片斷--a、b和c組成了一個路徑,此外,這個路徑是絕對的,因為第一個路徑片斷(a)的前綴是正斜杠。
  
  可選的query組件識別要傳遞給某種資源的數據。這種資源使用該數據獲取或生成其它的傳遞回調用者的數據。例如,http://www.somesite.net/a?x=y, x=y就是一個查詢(query),在這個查詢中,x=y是傳遞給某種資源的數據--x是某種實體的名稱,y是該實體的值。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 永年县| 五大连池市| 新巴尔虎右旗| 麻阳| 西和县| 万盛区| 三门县| 饶河县| 天水市| 洛南县| 壶关县| 来安县| 尉犁县| 双城市| 静海县| 谢通门县| 武威市| 华坪县| 四会市| 深水埗区| 福贡县| 全椒县| 沙坪坝区| 湛江市| 砀山县| 大冶市| 乡城县| 台中市| 神木县| 高安市| 余姚市| 榆林市| 蓬溪县| 贞丰县| 鄱阳县| 南投县| 麻栗坡县| 乌拉特中旗| 手游| 沾化县| 遵义县|