網路基礎之HTTP協議
導讀 | HTTP:超文字傳輸協議(HTTP)是一種通訊協議,它允許將超文字標記語言文件從web伺服器傳送到客戶端的瀏覽器。HTTP協議是構建在TCP/IP協議之上的,是TCP/IP協議的一個子集。 |
HTTP:超文字傳輸協議(HTTP)是一種通訊協議,它允許將超文字標記語言文件從web伺服器傳送到客戶端的瀏覽器。HTTP協議是構建在TCP/IP協議之上的,是TCP/IP協議的一個子集。
TCP/IP族:TCP/IP協議是一系列與網際網路相關聯的協議集合的總成,分層管理是TCP/IP協議的重要特徵。TCP/IP族通常由應用層、傳輸層、網路層以及資料鏈路層構成的系統。
應用層:應用層一般是編寫的應用程式,決定向使用者提供什麼應用服務。可以透過系統呼叫與傳輸層進行通訊,比如:FTP、DNS、HTTP等。
傳輸層:傳輸層是透過系統呼叫嚮應用層提供處於網路連線中的兩臺計算機之間的資料傳輸功能。傳輸層具有兩個不同性質的協議:TCP和UDP。TCP是面向連線的,可靠的,效率低。UDP是無連線的,可靠性低,效率高
網路層:網路層是用於處理在網路上流動的資料包,而資料包是網路傳輸的最小資料單位。此層規定了透過什麼路徑(傳輸路線)到達對方對方計算機,並把資料包傳輸給對方。
鏈路層:鏈路層用於處理連線網路的硬體部分,包括控制作業系統、硬體裝置驅動、NIC網路介面卡以及光纖等物理可見部分。硬體上的範疇均在鏈路層的作用範圍內。
在傳送端傳送資料時,資料會從上層傳輸到下層,且每經過一層都會被打上該層的頭部資訊。而接收端接收資料時,資料會從下層傳輸到上層,傳輸前會把下層的頭部資訊刪除。
在下圖中,當你想在瀏覽器檢視某個頁面時,會在應用層發起一個HTTP請求,透過傳輸層的TCP協議進行分割HTTP報文,併為每個報文打上標記序號、埠號等資訊後傳送到網路層。在網路層透過IP協議為每個報文增加作為通訊目的地的MAC地址,然後轉發給鏈路層,接收端的伺服器在鏈路層接收請求的HTTP資料。在伺服器返回到瀏覽器的流程則是相反的。
使用TCP協議進行通訊的雙方必須先建立連線,然後才能開始傳輸資料。為了確保連線雙方的可靠性,在雙方建立連線時,TCP協議會採用三次握手策略。
第一次握手:客戶端傳送帶有SYN標誌的連線請求報文段,然後進入SYN_SEND狀態,等待服務端的確認。
第二次握手:服務端接受到客戶端的SYN報文段後,需要傳送ACK資訊對這個SYN報文段進行確認,同時還要傳送自己的SYN請求資訊。服務端會將上述的資訊放到一個報文段(SYN+ACK報文段)中,一併傳送給客戶端,此時服務端將會進入SYN_SEND狀態。
第三次握手:客戶端接收到服務端的SYN+ACK報文段後,會向服務端傳送ACK確認報文段,這個報文段傳送完畢後,客戶端和服務端都進入ESTABLISHED狀態,完成TCP三次握手。
講到這裡,通常會有疑問:為什麼TCP協議要進行三次握手而不是兩次呢?
這是因為要建立可靠的通訊,首先客戶端和服務端都得確保對方具有完整的收發能力。第一次握手客戶端傳送請求報文給服務端,服務端可以確認客戶端的傳送能力是正常的以及服務端的接收能力是正常的;第二次握手客戶端接收到服務端返回的報文資訊,可以確認服務端的收發能力是正常的,同時客戶端的收發能力是正常的;第三次握手客戶端再次向服務端傳送確認資訊,此時服務端可以確認客戶端的接收報文的能力和服務端的傳送能力是正常。最後能夠確認雙方的收發能力是正常的,因此需要進行三次握手,而兩次握手是不能彼此確認雙方的收發能力是否正常。
在上面的知識點中,我們知道與HTTP有著密切聯絡的TCP/IP協議,而DNS服務與HTTP協議也有著密不可分的關係。
比如說你要訪問百度,可以使用主機名100.100.10.10或者域名進行訪問,但是相比於一串純數字的IP地址而言,使用域名更容易讓人記住和訪問。要知道在計算機網路中TCP/IP協議使用的就是IP地址進行訪問,因此需要透過一種機制將域名轉換為IP地址。而 DNS服務正是用於解決這個問題的,可以提供域名到IP地址之間的解析服務,其實就像我們打電話時查閱通訊錄一樣。
如圖所示,當我們在瀏覽器輸入時,具體細節如下:
① TCP/IP協議會先去訪問本地域名解析器,當搜尋到對應的IP地址則直接返回到客戶端,客戶端則直接向服務端發起HTTP請求;而當沒有搜尋到對應的IP地址時,則向上溯源,查詢上一級域名解析器
② TCP/IP協議訪問根域名伺服器搜尋對應的IP地址,若同樣的搜尋透過則沿原路返回到客戶端;若沒有搜尋到則繼續溯源搜尋
③ TCP/IP協議一直溯源搜尋直至頂級域名伺服器,搜尋沿原路返回,否則則告知客戶端沒有此域名
當客戶端訪問WEB站點時,首先會用過DNS服務查詢到域名對應的IP地址,返回到客戶端生成HTTP請求,透過TCP/IP協議傳送給WEB伺服器。WEB伺服器接收到請求後,會根據請求生成相應內容,並透過TCP/IP協議返回到客戶端。
原文來自:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69955379/viewspace-2787003/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- iOS網路基礎 HTTP協議iOSHTTP協議
- 01 前端HTTP協議(圖解HTTP) 之 網路基礎前端HTTP協議圖解
- 網路基礎之網路協議協議
- 網路基礎之網路協議篇協議
- 網路基礎與協議入門——(1)HTTP協議重點協議HTTP
- HTTP之網路基礎HTTP
- 網路基礎和 TCP、IP 協議TCP協議
- 網路基礎與協議入門——(2)TCP協議重點協議TCP
- 網路基礎 Modbus協議學習總結協議
- 前端基礎之HTTP協議介紹前端HTTP協議
- HTTP協議基礎HTTP協議
- 《圖解HTTP》— Web網路基礎圖解HTTPWeb
- javaweb基礎--HTTP協議JavaWebHTTP協議
- 02 前端HTTP協議(圖解HTTP) 之 簡單的HTTP協議前端HTTP協議圖解
- HTTP協議之:HTTP/1.1和HTTP/2HTTP協議
- 計算機網路之十二:HTTP協議計算機網路HTTP協議
- WEB基礎及HTTP協議WebHTTP協議
- Web基礎與HTTP協議WebHTTP協議
- 一、《圖解HTTP》- WEB和網路基礎圖解HTTPWeb
- 筆記:網路基礎TCP、HTTP、HTTPS(HTTP+SSL)筆記TCPHTTP
- JavaWeb第五講 Web核心基礎之HTTP協議JavaWebHTTP協議
- 網路通訊協議-HTTP協議詳解!協議HTTP
- 極光HTTP之什麼是網路協議HTTP協議
- 05 前端HTTP協議(圖解HTTP) 之 HTTP首部前端HTTP協議圖解
- HTTP 協議HTTP協議
- [HTTP協議]HTTP協議
- http協議HTTP協議
- 網路基礎
- WEB伺服器之HTTP協議Web伺服器HTTP協議
- 真正“搞”懂HTTP協議05之What's HTTP?HTTP協議
- 真正“搞”懂HTTP協議13之HTTP2HTTP協議
- 真正“搞”懂HTTP協議14之HTTP3HTTP協議
- Http網路協議包 (快速理解)HTTP協議
- 04 前端HTTP協議(圖解HTTP) 之 HTTP狀態碼前端HTTP協議圖解
- 實現網站由http協議轉為https協議網站HTTP協議
- Web的誕生和網路基礎 | 讀《圖解HTTP》Web圖解HTTP
- 《圖解http》閱讀筆記--web及網路基礎圖解HTTP筆記Web
- HTTP讀書筆記——瞭解Web及網路基礎HTTP筆記Web