讀書筆記《圖解HTTP》:了解Web及網路基礎
1、使用HTTP協議訪問Web
本書一開場便是經典面試題:當我們在網頁瀏覽器的地址欄中輸入URL時,Web頁面是如何呈現的。
1- 當我們在瀏覽器地址欄輸入URL之後,信息會被送往某處;2- 然後從某處獲取文件資源等信息,從而顯示出Web頁面。
通過發送請求獲取伺服器資源的Web瀏覽器,都可稱為客戶端。
Web使用一種名為HTTP(翻譯為超文本轉移協議更為精確)的協議作為規範,完成從客戶端到伺服器端等一系列運作流程。而協議是指規則的約定,可以說,Web是建立在HTTP協議上通信的。
2、HTTP的誕生
2.1 為知識共享而規劃Web
WWW這一提議,是致力於全世界的研究者們進行知識共享。Tim Bernaers Lee博士提出一種讓遠隔兩地的研究者們共享知識的設想,最初是藉助多文檔之間相互關聯形成的超文本,連成可相互參閱的world wide web(萬維網)。
3項WWW構建技術,分別是:1- 把SGML作為頁面的文本標記語言的HTML;2- 作為文檔傳遞協議的HTTP;3- 指定文檔所在地址的URL。
WWW: Web瀏覽器當年用來瀏覽超文本的客戶端應用程序時的名稱,現在則用來表示這一系列的集合,簡稱Web。
2.2 Web成長時代
1990.11: CERN成功研發了世界上第一台web伺服器和web瀏覽器。
1992.9:日本的第一個網站的主頁上線。
1993.1:現代瀏覽器的祖先NCAS研發的mosaic問世。
1994.12:網景發布NN1.0
1995:微軟發布IE1.0 和IE2.0
2000:網景衰落
2004:Mozilla基金會發布FF。
2.3 駐足不前的HTTP
1990:HTTP/0.9問世,但是那時的HTTP並沒有作為正式的標準被建立。
1996.5:HTTP/1.0,正式作為標準被公布。
1997.1:HTTP/1.1,目前主流版本。
當年HTTP協議的出現主要是為了解決文本傳輸的難題。
3、網路基礎 TCP/IP
通常使用的網路是在 TCP/IP 協議族的基礎上運作的。而HTTP屬於它內部的一個子集。
3.1 TCP/IP 協議族
計算機與網路設備要相互通信,雙方就必須基於相同的方法,不同的硬體、操作系統之間的通信,所有的這一切都需要一種規則,我們就把這種規則成為協議。與互聯網相關聯的協議集合起來總稱為 TCP/IP。
3.2 TCP/IP 的分層機制
TCP/IP協議族裡重要的一點就是分層,按層次分別為:應用層、傳輸層、網路層和數據鏈路層。
3.2.1 應用層:決定了向用戶提供應用服務時通信的活動。
TCP/IP協議族內預存了各類通用的應用服務,FTP、DNS服務就是其中兩類。
HTTP也屬於應用層。
3.2.2 傳輸層:對上層應用提供處於網路連接中的兩台計算機之間的數據傳輸。
在傳輸層有兩個性質不同的協議:TCP和UDP。
3.2.3 網路層(又稱網路互聯層):處理在網路上流動的數據包。
該層規定了通過怎樣的路徑(所謂的傳輸路線)到達對方計算機,並把數據包傳送給對方。
與對方計算機之間通過多台計算機或網路設備進行傳輸時,網路層所起的作用就是在眾多的選項內選擇一條傳輸路線。
3.2.4 鏈路層(又名數據鏈路層,網路介面層):用來處理鏈接網路的硬體部分。
包括:控制操作系統、硬體的設備驅動、NIC(網卡)、光纖等物理可見部分(連接器等一切傳輸媒介)。
硬體上的範疇均在鏈路層的作用範圍之內。
3.3 TCP/IP 通信傳輸流
發送端從應用層往下走,接收端則從鏈路層往上走。
1- 作為發送端的客戶端在應用層(HTTP協議)發出一個想看某個web頁面的HTTP請求。
2- 在傳輸層(TCP協議)把從應用層處收到的數據(HTTP報文)進行分割,並在各個報文上打上標記序號與埠號後轉發給網路層。
3- 在網路層,增加作為通信目的地的MAC地址後轉發給鏈路層。
4- 接收端的伺服器在鏈路層接收到數據,按序往上層發送,一直到應用層。當傳輸到應用層,才算真正接收到由客戶端發送過來的HTTP請求。
發送端在層與層之間傳輸數據時,每經過一層時必定會被打上一個該層所屬的首部信息。
接收端在層與層傳輸數據時,每經過一層時會把相應的首部消去。
4、與HTTP關係密切的協議:IP、TCP和DNS
4.1 負責傳輸的IP協議
IP協議作用:把各種數據包傳送給對方
IP地址:指明了節點被分配的地址
MAC地址:網卡所屬的固定地址
IP地址可以和MAC地址進行配對,IP地址可變換,但MAC地址基本上不會更改。
使用ARP協議憑藉MAC地址進行通信。IP間的通信依賴MAC地址。
沒有人能夠全面掌握互聯網中的傳輸狀況。到達通信目標前的中轉過程中,那些計算機和路由器等網路設備只能獲悉很粗略的傳輸路線(這種機制稱為路由選擇)
4.2 確保可靠性的TCP協議
TCP屬於傳輸層,提供可靠的位元組流服務。將大塊數據分割成以報文段為單位的數據包進行管理。TCP協議能夠確認數據最終是否送達對方。
確保數據能到達目標
為了準確無誤地將數據送達目標,TCP協議採取了三次握手策略。
若在握手過程中某個階段莫名中斷,TCP協議會再次以相同的順序發送相同的數據包。
5、負責域名解析的DNS服務
DNS服務是和HTTP協議一樣位於應用層的協議,它提供域名到IP地址之間的解析服務。
計算機既可以被賦予IP地址,也可以被賦予主機名和域名。
6、各種協議與HTTP協議的關係
IP協議、TCP協議和DNS服務在使用HTTP協議的通信過程中各自發揮的作用
7、URI和URL
7.1 URI 統一資源標識符
Uniform:規定統一的格式可方便處理多種不同類型的資源
Resource:可標識的任何東西
Identity:可標識的對象
URI就是由某個協議方案表示的資源的定位標識符。協議方案是指訪問資源所使用的協議類型名稱。
URI用字元串標識某一互聯網資源,URL標識資源的地點。URL是URI的子集。
7.2 URI格式
相對URL:指從瀏覽器中基本URI處指定的URL,如/image/logo.gif
推薦閱讀: