HTTP協(xié)議-從URI開始

原文連接 blog

URI

URI, 既是統(tǒng)一資源標(biāo)識(shí)符號(hào),每個(gè) Web 服務(wù)器都有一個(gè) URI 標(biāo)識(shí)符,它在世界范圍內(nèi)唯一標(biāo)識(shí)并定位信息資源。

它具有兩種形式,URN (統(tǒng)一資源名)、URL(統(tǒng)一資源定位符)。

URN

URN (統(tǒng)一資源名),是作為特定內(nèi)容的唯一名稱使用的,與目前資源所在地?zé)o關(guān)。使用這些與位置無關(guān)的 URN,就可以將資源四處搬移。通過 URN,還可以用同一個(gè)名字通過多種網(wǎng)絡(luò)訪問協(xié)議來訪問資源。

URL

URL(統(tǒng)一資源定位符),是 URI 最常見的形式,它描述了一臺(tái)特定服務(wù)器上某資源的特定位置。它們可以明確說明如何從一個(gè)精確、固定的位置獲取資源。

一個(gè)完整的 URL 通常包括以下三部分:

  • 方案:方案部分,說明了 Web客戶端 訪問資源時(shí)所使用的協(xié)議類型。通常是HTTP協(xié)議。方案可以使用其他協(xié)議來訪問資源,它們可以指向因特網(wǎng)上的任意資源,比如:E-mail: jkchaom@gmail.com ,或者其他協(xié)議。

  • 服務(wù)器位置:這部分告知服務(wù)器端的位置位于何處。通常的組成是“主機(jī)名 + 端口”的形式告知,也有“ IP 地址 + 端口”的形式。端口標(biāo)識(shí)出服務(wù)器正在監(jiān)聽的網(wǎng)絡(luò)端口,對(duì)下層使用了 TCP 協(xié)議的 HTTP 來說,默認(rèn)端口號(hào)為80;

  • 資源路徑:路徑說明了請(qǐng)求的是服務(wù)器上哪個(gè)特定的本地資源。

整合到結(jié)構(gòu),既是“方案 :// 服務(wù)器位置/路徑”

此外,一些非必需的 URL 組件也在其中扮演著非常重要的作用:

  • 查詢:主要用來縮小所請(qǐng)求資源類型范圍。通常以一個(gè)“ ?”,開始,比如以下URL 地址,https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=1&rsv_idx=1&tn=baidu&wd=weibo 。按照常規(guī),查詢組件的組成是以一系列的“名/值”,對(duì)的形式出現(xiàn),名值對(duì)之間用字符“&”分隔。

  • 片段:有些資源類型,可以做進(jìn)一步劃分,比如 HTML ,URL 支持使用片段組件來表示一個(gè)資源內(nèi)部的片段。通常以“#” 開始,比如:https://github.com/jkchao/blog#httpHTTP 服務(wù)器通常只處理整個(gè)對(duì)象,而不是對(duì)象的片段,客戶端不能將片段傳送給服務(wù)器,瀏覽器從服務(wù)器獲得了整個(gè)資源之后,會(huì)根據(jù)片段來顯示片段資源。 因此,片段組件,僅由客戶端使用。

URL 的缺點(diǎn)

URL 表示的是實(shí)際的地址,而不是準(zhǔn)確的名字。這就意味著 URL 會(huì)告訴你資源此時(shí)處于什么位置,它會(huì)為你提供特定端口上特定服務(wù)器的名字,告訴你在何處可以找到這個(gè)資源。這種方案的最大弊端在于,如果資源被移走了,URL 也就不再有效了。那時(shí),它就無法對(duì)對(duì)象進(jìn)行定位了。

永久統(tǒng)一資源定位符(PURL),是用 URL 實(shí)現(xiàn) URN 功能的一個(gè)例子。其基本思路是在搜索資源的過程中引入另一個(gè)中間層,通過一個(gè)中間資源定位符服務(wù)器對(duì)資源的實(shí)際 URL 進(jìn)行登記和跟蹤,客戶端可以向定位符請(qǐng)求一個(gè)永久 URL ,定位符可以以一個(gè)資源作為響應(yīng),將客戶端重定向到資源當(dāng)前實(shí)際 URL 上去。如下圖所示:

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • (原話)談?wù)剬?duì)HTTP協(xié)議的理解:超文本傳輸協(xié)議,應(yīng)用于OSI網(wǎng)絡(luò)模型中的應(yīng)用層,是用于服務(wù)器傳輸超文本到本地瀏覽...
    24_yu閱讀 997評(píng)論 0 1
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,569評(píng)論 19 139
  • HTTP簡介 HTTP協(xié)議是Hyper Text Transfer Protocol(超文本傳輸協(xié)議)的縮寫,是用...
    加油小杜閱讀 629評(píng)論 1 3
  • HTTP簡介 HTTP協(xié)議是Hyper Text Transfer Protocol(超文本傳輸協(xié)議)的縮寫,是用...
    許小小晴閱讀 552評(píng)論 0 2
  • 有一種普遍的說法是:真正的牛人都是愿意向他人分享的,因?yàn)樗麄兂D昀墼碌姆e累不怕人偷師。 這話是沒錯(cuò),但還有一句實(shí)話...
    它它的小屋閱讀 527評(píng)論 0 5

友情鏈接更多精彩內(nèi)容