http協議請求流程分析

2022-07-28 13:51:21 字數 1085 閱讀 2290

http協議請求流程分析

使用者輸入url(位址鏈結)(客戶端獲取到埠及主機名後,客戶端利用dns解析網域名稱,首先客戶端的瀏覽器會先找自身的快取,如果有解析結束,如果沒有客戶端會去找host檔案,如果host檔案沒有的話,客戶端會去找本地的dns快取伺服器,本地的dns快取伺服器沒有的話,快取伺服器會去找根域,根域沒有,會返回乙個.com.然後本地快取伺服器會去找頂級域,頂級域沒有的話會返回baidu.com.,然後本地快取伺服器會去找二級域,二級域解析完後會返回客戶端。      

客戶端解析到ip位址後會通過tcp的三次握手與伺服器建立連線,首先客戶端向伺服器傳送請求連線報文,syn=1初始序號seq為x,這時客戶端進入syn-sent狀態,伺服器確認請求報文ack=1,syn=1,確認序號ack=x+1,伺服器產生的初始序號seq=y,回覆客戶端確認連線,此時伺服器進入syn-rcvd狀態,客戶端接受後確認報文ack=1,ack=y+1,客戶端又重組序號為x+1。tcp連線已經建立,客戶端進入established 狀態,當伺服器收到客戶端的確認後,也會進入 established 狀態。客戶端連線到ip位址,傳送httpget的請求,從伺服器讀取http響應。

之後斷開連線時,需要通過tcp的四次揮手完成,

客戶端向伺服器傳送斷開連線請求報文,fin=1,ack=1,序號為u,客戶端處於fin—wait-1(終止等待1)狀態,伺服器確認報文ack=1,確認序號為ack=u+1,伺服器的序號為v,回覆客戶端,伺服器服務端處於close—wait(關閉等待)狀態,客戶端接受確認報文ack=1,確認序號ack=v+1,客戶端重組序號為seq=u+1,客戶端處於fin—wait-2(終止等待2)狀態,然後伺服器也想讓客戶端斷開連線,就傳送了斷開連線請求,fin=1,ack=1,伺服器重組序號為w,伺服器服務端處於last—ack(最後確認)狀態,客戶端接受後確認報文ack=1.確認序號為ack=w+1,客戶端序號為u+1,客戶端進入closed(時間等待)狀態,等待最長報文段壽命2*msl,伺服器確認後,立即進入關閉狀態。然後進行關閉連線。

HTTP協議請求流程分析

一 dns網域名稱解析 使用者輸入乙個url 統一資源定位符 或點選乙個鏈結,這裡以訪問www.baidu.com為例。2 查詢主機的hosts檔案,若hosts檔案中存在直接通過主機訪問。如果不存在 4 本地dns快取伺服器會去尋找 根域 根域不存在具體位址,會返回 com 一級域 5 本地dns...

Http 協議請求方法分析

博文摘自 get和post的本質區別是什麼?使用get,form中的資料將編碼到url中,而使用post的form中的資料則在http協議的header中傳輸。在使用上,當且僅當請求冪等 字面意思是請求任意次返回同樣的結果,本質是請求本身不會改變伺服器資料和狀態 時使用get,當請求會改變伺服器資料...

HTTP協議 請求 響應結構分析

引言正文 請求結構示例 響應結構 響應結構示例 有彩蛋哦 之前介紹了springmvc接收到乙個請求之後,是如何分發,處理的。今天用瀏覽器的開發工具,無意間點開了http的請求結構,發現這一部分的知識竟然是空白的,趕緊補充一下 請求結構分為,請求行,訊息報頭,請求正文 以方法符號開頭 空格分隔 後面...