網路基礎之HTTP協議

大雄45發表於2021-08-15
導讀 HTTP:超文字傳輸協議(HTTP)是一種通訊協議,它允許將超文字標記語言文件從web伺服器傳送到客戶端的瀏覽器。HTTP協議是構建在TCP/IP協議之上的,是TCP/IP協議的一個子集。
初識HTTP

網路基礎之HTTP協議網路基礎之HTTP協議

HTTP:超文字傳輸協議(HTTP)是一種通訊協議,它允許將超文字標記語言文件從web伺服器傳送到客戶端的瀏覽器。HTTP協議是構建在TCP/IP協議之上的,是TCP/IP協議的一個子集。

TCP/IP族:TCP/IP協議是一系列與網際網路相關聯的協議集合的總成,分層管理是TCP/IP協議的重要特徵。TCP/IP族通常由應用層、傳輸層、網路層以及資料鏈路層構成的系統。

網路基礎之HTTP協議網路基礎之HTTP協議

應用層:應用層一般是編寫的應用程式,決定向使用者提供什麼應用服務。可以透過系統呼叫與傳輸層進行通訊,比如:FTP、DNS、HTTP等。

傳輸層:傳輸層是透過系統呼叫嚮應用層提供處於網路連線中的兩臺計算機之間的資料傳輸功能。傳輸層具有兩個不同性質的協議:TCP和UDP。TCP是面向連線的,可靠的,效率低。UDP是無連線的,可靠性低,效率高

網路層:網路層是用於處理在網路上流動的資料包,而資料包是網路傳輸的最小資料單位。此層規定了透過什麼路徑(傳輸路線)到達對方對方計算機,並把資料包傳輸給對方。

鏈路層:鏈路層用於處理連線網路的硬體部分,包括控制作業系統、硬體裝置驅動、NIC網路介面卡以及光纖等物理可見部分。硬體上的範疇均在鏈路層的作用範圍內。

網路基礎之HTTP協議網路基礎之HTTP協議

HTTP的傳輸過程

在傳送端傳送資料時,資料會從上層傳輸到下層,且每經過一層都會被打上該層的頭部資訊。而接收端接收資料時,資料會從下層傳輸到上層,傳輸前會把下層的頭部資訊刪除。

在下圖中,當你想在瀏覽器檢視某個頁面時,會在應用層發起一個HTTP請求,透過傳輸層的TCP協議進行分割HTTP報文,併為每個報文打上標記序號、埠號等資訊後傳送到網路層。在網路層透過IP協議為每個報文增加作為通訊目的地的MAC地址,然後轉發給鏈路層,接收端的伺服器在鏈路層接收請求的HTTP資料。在伺服器返回到瀏覽器的流程則是相反的。

網路基礎之HTTP協議網路基礎之HTTP協議

TCP的三次握手

使用TCP協議進行通訊的雙方必須先建立連線,然後才能開始傳輸資料。為了確保連線雙方的可靠性,在雙方建立連線時,TCP協議會採用三次握手策略。

第一次握手:客戶端傳送帶有SYN標誌的連線請求報文段,然後進入SYN_SEND狀態,等待服務端的確認。

第二次握手:服務端接受到客戶端的SYN報文段後,需要傳送ACK資訊對這個SYN報文段進行確認,同時還要傳送自己的SYN請求資訊。服務端會將上述的資訊放到一個報文段(SYN+ACK報文段)中,一併傳送給客戶端,此時服務端將會進入SYN_SEND狀態。

第三次握手:客戶端接收到服務端的SYN+ACK報文段後,會向服務端傳送ACK確認報文段,這個報文段傳送完畢後,客戶端和服務端都進入ESTABLISHED狀態,完成TCP三次握手。

網路基礎之HTTP協議網路基礎之HTTP協議

講到這裡,通常會有疑問:為什麼TCP協議要進行三次握手而不是兩次呢?

這是因為要建立可靠的通訊,首先客戶端和服務端都得確保對方具有完整的收發能力。第一次握手客戶端傳送請求報文給服務端,服務端可以確認客戶端的傳送能力是正常的以及服務端的接收能力是正常的;第二次握手客戶端接收到服務端返回的報文資訊,可以確認服務端的收發能力是正常的,同時客戶端的收發能力是正常的;第三次握手客戶端再次向服務端傳送確認資訊,此時服務端可以確認客戶端的接收報文的能力和服務端的傳送能力是正常。最後能夠確認雙方的收發能力是正常的,因此需要進行三次握手,而兩次握手是不能彼此確認雙方的收發能力是否正常。

DNS域名解析

在上面的知識點中,我們知道與HTTP有著密切聯絡的TCP/IP協議,而DNS服務與HTTP協議也有著密不可分的關係。

比如說你要訪問百度,可以使用主機名100.100.10.10或者域名進行訪問,但是相比於一串純數字的IP地址而言,使用域名更容易讓人記住和訪問。要知道在計算機網路中TCP/IP協議使用的就是IP地址進行訪問,因此需要透過一種機制將域名轉換為IP地址。而 DNS服務正是用於解決這個問題的,可以提供域名到IP地址之間的解析服務,其實就像我們打電話時查閱通訊錄一樣。

網路基礎之HTTP協議網路基礎之HTTP協議

如圖所示,當我們在瀏覽器輸入時,具體細節如下:

① TCP/IP協議會先去訪問本地域名解析器,當搜尋到對應的IP地址則直接返回到客戶端,客戶端則直接向服務端發起HTTP請求;而當沒有搜尋到對應的IP地址時,則向上溯源,查詢上一級域名解析器

② TCP/IP協議訪問根域名伺服器搜尋對應的IP地址,若同樣的搜尋透過則沿原路返回到客戶端;若沒有搜尋到則繼續溯源搜尋

③ TCP/IP協議一直溯源搜尋直至頂級域名伺服器,搜尋沿原路返回,否則則告知客戶端沒有此域名

HTTP事務處理過程

當客戶端訪問WEB站點時,首先會用過DNS服務查詢到域名對應的IP地址,返回到客戶端生成HTTP請求,透過TCP/IP協議傳送給WEB伺服器。WEB伺服器接收到請求後,會根據請求生成相應內容,並透過TCP/IP協議返回到客戶端。

網路基礎之HTTP協議網路基礎之HTTP協議

原文來自:

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69955379/viewspace-2787003/,如需轉載,請註明出處,否則將追究法律責任。

相關文章