大話HTTP[第一集]

        我所認識的HTTP

我們都知道HTTP是超文本協議。但更具體一點,我們應該怎麼去理解協議?有人說可以類比我們說的語言,因爲語言是我們人類交流的基礎。加上目前HTTP所形成的技術家族,把它類比成語言一點不爲過,基於HTTP的應用有很多,它們都通過HTTP來傳輸信息。典型的應用就是瀏覽器與Web服務器。類比雖然是成立的,但是好像不能幫助我們去理解HTTP,這是因爲我們的語言本身也夠抽象了,至少不能讓我們直觀地認識到HTTP是什麼了。

爲了更好的理解HTTP,我們可以追溯到HTTP的早期版本,那個時候HTTP還是一個簡單的協議,爲互聯網通信提供了基礎,爲了應對互聯網的不確定性,就需要設計一系列的策略去規避問題同時保證信息能夠順利傳輸,解決的是單個場景的問題。而這種場景相對比較簡單,我們可以想象生活中的一個例子,有人找你借錢,你會發現他找的時機特別合適,比如你剛領了工資,再加上他的借錢理由完勝你不想借的理由,你有多不捨,他就有多執着,這個場景和你老婆壓縮你零用錢的場景一模一樣,成年人的奔潰是從借錢開始的,在你猶豫不覺時,他又補了一刀,說回頭就給你,這樣他順利借走了你的錢,終結了工資帶給你的短暫喜悅。我們把借錢當作一個場景,借錢的人考慮了很多已知和未知的場景,並且處理的非常得當,他借走了你的錢。整個流程的處理特別想早期版本的HTTP。

HTTP協議在Web中屬於底層知識,又或者說是網絡架構,而Web開發人員來說很難有機會去接觸它,因爲B/S架構中,瀏覽器已經封裝了HTTP,我們更多的是處理我們的業務場景。

目前來說,互聯網上存在着數以億萬計的資源文件信息,並且這些分佈在全球各個地方,我們可以使用電腦或者手機通過HTTP來訪問這些信息,因爲HTTP是可靠的數據傳輸協議,這種可靠可以保證數據在傳輸時不會被損壞或則丟失,這一點對於用戶或者Web開發者來說都是一件好事,開發者可以專注業務的開發。

Web服務器也叫HTTP服務器,因爲Web服務器使用是HTTP協議,這些HTTP服務器存儲着互聯網上絕大部分的數據,並在有HTTP請求時返回這些數據給HTTP客戶端,其中最常見的客戶端就是瀏覽器。

對於Web資源來說,它可以是你能夠想到的任何格式,比如文本,圖片,音視頻等,這些資源通常稱作爲靜態資源,但是需要注意一點的是,Web資源除了靜態資源以外,還可以是軟件根據需要生成資源,比如依據身份不同而產生的不同內容。

Web資源有很多類型,HTTP爲了能夠更好的識別不同的數據類型,引入了媒體類型,也叫MIME
類型,它是一種數據格式標籤,當瀏覽器從Web服務器上獲取到一個資源時,會首先查看該資源的MIME類型,以便如何處理這個資源。MIME的格式,通常是一個大類型/子類型。
HTML格式的文本使用text/html來標記,JPEG的圖片使用image/jpeg來標記。
常見的MIME有上百個。

爲了準確的獲取到目標資源,HTTP引入了統一資源標識符,URI,它是全世界範圍內的唯一標識符,HTTP可以通過統一資源標識符準確地定位資源文件。同時URI有兩種形式,URL和URN.
URL,統一資源定位符,也是目前最常見的資源標識符形式,描述了特定服務器上的特定資源的位置。第一部分,訪問資源的協議類型(scheme);第二部分,服務器的互聯網地址;第三部分,資源文件的路徑。目前來說,URI和URL是等價的。
URN,統一資源名,是一種與資源名稱有關,而與資源地址無關。使用場景在,通過一個名字,可以使用多做網絡協議去訪問。但URN還存於試驗階段,沒有大範圍使用。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章