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

推薦閱讀:

相关文章