在2D平面上行走的時(shí)候,認(rèn)識(shí)只局限于“點(diǎn)”,剛認(rèn)識(shí)一個(gè)新的點(diǎn),就把之前的那個(gè)點(diǎn)忘記了,撿了芝麻丟西瓜。只從3D視角俯瞰時(shí),把這些點(diǎn)連接在一起,點(diǎn)成線,線成面時(shí),才能有所頓悟。話不多說,這是我對(duì)HTTP的不完全圖解。希望對(duì)大家整體上初步理解HTTP有所幫助。

  整體上來看,HTTP分為五個(gè)部分。

移動(dòng)開發(fā)培訓(xùn),Android培訓(xùn),安卓培訓(xùn),手機(jī)開發(fā)培訓(xùn),手機(jī)維修培訓(xùn),手機(jī)軟件培訓(xùn) 

1.報(bào)文

報(bào)文 = 報(bào)文首部 + 報(bào)文主體

打上了“紅旗”的,代表非常重要:

(1)首部字段

(2)Cookie 和 Set-Cookie

Cookie:客戶端告知服務(wù)器想獲得HTTP狀態(tài)管理支持。

Set-Cookie: 服務(wù)器管理客戶端的狀態(tài)。

1.1 請(qǐng)求報(bào)文

移動(dòng)開發(fā)培訓(xùn),Android培訓(xùn),安卓培訓(xùn),手機(jī)開發(fā)培訓(xùn),手機(jī)維修培訓(xùn),手機(jī)軟件培訓(xùn)

1.2 響應(yīng)報(bào)文

移動(dòng)開發(fā)培訓(xùn),Android培訓(xùn),安卓培訓(xùn),手機(jī)開發(fā)培訓(xùn),手機(jī)維修培訓(xùn),手機(jī)軟件培訓(xùn)

2. 通信傳輸

這里需要問自己這樣的問題:

(1)為什么會(huì)有“分層”這個(gè)概念?

(2)三次握手的過程?如果中斷了怎么辦?

  發(fā)送端將一個(gè)帶SYN標(biāo)志的數(shù)據(jù)包給接收端。
  接收端回傳一個(gè)帶有SYN/ACK標(biāo)志的數(shù)據(jù)包,傳達(dá)確認(rèn)信息。
  發(fā)送端回傳一個(gè)帶ACK標(biāo)志的數(shù)據(jù)包,代表“握手”結(jié)束。

  如果中斷,TCP協(xié)議會(huì)再次以相同的順序發(fā)送相同的數(shù)據(jù)包。

移動(dòng)開發(fā)培訓(xùn),Android培訓(xùn),安卓培訓(xùn),手機(jī)開發(fā)培訓(xùn),手機(jī)維修培訓(xùn),手機(jī)軟件培訓(xùn)

3.服務(wù)器

這里重點(diǎn)理解一下緩存策略。

第一階段--本地緩存。

第二階段:緩存協(xié)商。在這個(gè)階段,需要用到兩組首部字段Last-Modified/IF-Modified-Since和Etag/If-None-Match。