HTTP協議小知識

HTTP是一種通信協議,構建在TCP/IP協議之上的,是TCP/IP協議的一個子集。下圖展示了HTTP事務處理過程。當客戶端訪問WEB站點時,首先會通過DNS服務查詢到域名的IP地址。然后瀏覽器生成HTTP請求,并通過TCP/IP協議發送給Web服務器。Web服務器接受到請求后會根據請求生成響應內容,并通過TCP/IP協議返回給客戶端。

image.png

而對應的結構如下:

image.png

  • 應用層一般是我們編寫的應用程序,決定了向用戶提供的應用服務。應用層可以通過系統調用與傳輸層進行通信,如:FTP,DNS,HTTP

  • 傳輸層通過系統調用向應用層提供處于網絡連接中的兩臺計算機之間的數據傳輸功能。在傳輸層中有兩個性質不同的協議:TCP和UDP

  • 網絡層用來處理在網絡中流動的數據包。該層規定了通過怎樣的路徑到達對方計算機,并把數據包傳輸給對方

  • 鏈路層用來處理連接網絡的硬件部分。包括控制操作系統。硬件設備驅動等。

數據包的封裝過程

TTP

傳輸層-TCP三次握手

使用TCP協議進行通信的雙方必須先建立連接,然后才能開始傳輸數據。為了確保連接雙方的可靠性,在雙方建立連接時,TCP協議采用三次握手的策略,UDP不用。

image.png

  • 第一次握手:客戶端發送帶有SYN標志的連接請求報文段,然后進入SYN_SEND狀態,等待服務端確認 (證明甲有發送的能力)

  • 第二次握手:服務端接受到客戶端的SYN報文段后,需要發送ACK信息對這個SYN報文段進行確認,同時還要發送自己的SYN請求信息。服務端會將上述的信息放到一個報文段(SYN+ACK)中,一并發送給客戶端,此時服務端將會進入SYN_RECV狀態。(證明乙有接受和發送的能力,證明甲發送成功的標志)

  • 第三次握手:客戶端接受到服務端的SYN+ACK報文段后,會向服務端發送ACK確認報文段,這個報文段發送完畢后,客戶端和服務端都進入ESTABLISHED狀態,自此完成TCP三次握手(證明乙發送成功,開始連接)

HTTP報文頭

image.png
image.png
image.png
image.png
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 個人認為,Goodboy1881先生的TCP /IP 協議詳解學習博客系列博客是一部非常精彩的學習筆記,這雖然只是...
    貳零壹柒_fc10閱讀 5,093評論 0 8
  • 1、TCP狀態linux查看tcp的狀態命令:1)、netstat -nat 查看TCP各個狀態的數量2)、lso...
    北辰青閱讀 9,511評論 0 11
  • 運輸層協議概述 從通信和信息處理的角度看,運輸層向它上面的應用層提供通信服務,它屬于面向通信部分的最高層,同時也是...
    srtianxia閱讀 2,458評論 0 2
  • 今天我們上體育課的時候,在操場上看見了一只黑綠色的金龜子躺在地上,大家都覺得很好玩。我想把它翻過來,弄成站著...
    一只屑銘閱讀 967評論 0 0
  • 我有一個愛我的爸爸。 他長的很高,有著1米75的個子,體重(保密),帶著一副黑黑的眼鏡。 我的爸爸很...
    璨璨lc閱讀 1,100評論 1 2