2019-08-11 HTTP及Chrome機(jī)制

調(diào)試工具

curl

HTTP/TCP

  1. 同一個(gè)域名同時(shí)最多只能建立 6 個(gè) TCP 連接,如果在同一個(gè)域名下同時(shí)有 10 個(gè)請(qǐng)求發(fā)生,那么其中 4 個(gè)請(qǐng)求會(huì)進(jìn)入排隊(duì)等待狀態(tài),直至進(jìn)行中的請(qǐng)求完成。
  2. cookies 存儲(chǔ)在瀏覽器(客戶端)上,通過HTTP的請(qǐng)求頭傳輸給服務(wù)器


    HTTP請(qǐng)求示意圖

斷開連接

通常情況下,一旦服務(wù)器向客戶端返回了請(qǐng)求數(shù)據(jù),它就要關(guān)閉 TCP 連接。不過如果瀏覽器或者服務(wù)器在其頭信息中加入了:
Connection:Keep-Alive
那么 TCP 連接在發(fā)送后將仍然保持打開狀態(tài),這樣瀏覽器就可以繼續(xù)通過同一個(gè) TCP 連接發(fā)送請(qǐng)求。保持 TCP 連接可以省去下次請(qǐng)求時(shí)需要建立連接的時(shí)間,提升資源加載速度。比如,一個(gè) Web 頁面中內(nèi)嵌的圖片就都來自同一個(gè) Web 站點(diǎn),如果初始化了一個(gè)持久連接,你就可以復(fù)用該連接,以請(qǐng)求其他資源,而不需要重新再建立新的 TCP 連接。

重定向

狀態(tài)碼:301
響應(yīng)頭字段:location
告訴瀏覽器,我需要重定向到另外一個(gè)網(wǎng)址,而需要重定向的網(wǎng)址正是包含在響應(yīng)頭的 Location 字段中,接下來,瀏覽器獲取 Location 字段中的地址,并使用該地址重新導(dǎo)航,這就是一個(gè)完整重定向的執(zhí)行流程。

//響應(yīng)行
HTTP/1.1 301 Moved Permanently   
//響應(yīng)頭
Date: Thu,08 Aug 2019 00:55:44 GMT 
Content-Type: text/html 
Content-Length:178
Connection: keep-alive 
Location: https://www. geekbang. org/
Strict-Transport-Security: max-age=15768000

瀏覽器緩存機(jī)制

  1. DNS緩存
  2. 頁面資源緩存
    通過響應(yīng)頭字段Cache-Control來設(shè)置是否緩存,其下的Max-age參數(shù)來設(shè)置存活時(shí)長(秒)
    響應(yīng)頭:
    Cache-Control:Max-age=2000
    存活時(shí)間內(nèi)不再向服務(wù)器請(qǐng)求,直接調(diào)用本地的緩存,超過存活時(shí)間就進(jìn)行重新請(qǐng)求,并在請(qǐng)求頭中加入If-None-Match字段,服務(wù)器收到請(qǐng)求后,通過其值判斷資源是否有更新
    請(qǐng)求頭:
    If-None-Match:"4f80f-13c-3a1xb12a"
  • 如果沒有更新,就返回 304 狀態(tài)碼,相當(dāng)于服務(wù)器 告訴瀏覽器:“這個(gè)緩存可以繼續(xù)使用,這次就不重復(fù)發(fā)送數(shù)據(jù)給你了。”
  • 如果資源有更新,服務(wù)器就直接返回最新資源給瀏覽器。


SESSION/COOKIE

以登錄為例

  1. 瀏覽器向服務(wù)器提交請(qǐng)求,賬號(hào)密碼保存在請(qǐng)求體中
  2. 服務(wù)器收到請(qǐng)求,驗(yàn)證之后存入SESSION,返回響應(yīng),SESSION_ID存在響應(yīng)頭中的SET-COOKIE字段中UID參數(shù)中
  3. 瀏覽器收到響應(yīng),將SET-COOKIE字段中的參數(shù)存入本地COOKIE中,之后每次請(qǐng)求服務(wù)器都將自身的COOKIE進(jìn)入提交,其中包括從服務(wù)器得到的UID參數(shù),服務(wù)器通過UID/SESSION_ID就能訪問為對(duì)應(yīng)瀏覽器存儲(chǔ)的SESSION
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容