記錄前端成長之HTTP協議

2021-10-01 17:48:02 字數 1376 閱讀 9076

簡單快速

每個資源(,頁面等)都通過url來定位。

靈活

http協議的頭部包含資料型別,http協議可以完成不同資料型別的傳輸。

無連線

連線一次就會斷開,不會一直保持連線。

無狀態

伺服器端和客戶端式兩種身份。第一次請求結束後,會立刻斷開連線,第二次連線時,伺服器無法判斷兩次請求的客戶端是否位同一身份,因為伺服器端並沒有記住之前的狀態。有的**登入的時候可以記住賬號,是用了別的手段,比如伺服器端的session,並不是http協議能做到的。

http報文的組成分為兩部分,請求報文和響應報文。

請求報文包括:

http方法有以下八種,前五個比較重要,其中get和post最常見。

get:獲取資源

post:傳輸資源

put:更新資源

delete:刪除資源

head:獲取報文頭部

options:詢問伺服器支援的各種方法

trace:回顯伺服器收到的請求,用於測試和診斷

get和post的區別有很多,主要有以下幾點:

在瀏覽器回退時,get不會重新請求,post會重新請求。

get請求會被瀏覽器主動快取,post則不會。

get請求的引數會被保留在瀏覽器記錄裡,而post不會。(為預防csrf攻擊,許多公司用post來替換get)

get請求在url中傳遞的引數有大小限制(一般為2kb,不同瀏覽器略有不同),而post沒有。

get請求的引數直接暴露在url中,相對不安全;而post的引數放在請求體中,沒有直接暴露。

301:重定向(永久)

302:重定向(臨時)

304:告訴客戶端,已有快取資源,不需要從伺服器端取了。

403:請求被拒絕

404:資源不存在

需要注意的是,http1.1缺省長連線。一次tcp連線可以完成多個http請求,但是對每個請求仍要單獨發header,keep-alive不會永久保持連線,可以在不同的伺服器軟體(例如apache)中設定保持時間。

管連線的原理

長連線時,預設的請求是這樣的:

請求1 --> 響應1 -->請求2 --> 響應2 --> 請求3 --> 響應3

長連線的管線化,請求是這樣的:

請求1–> 請求2–> 請求3–>響應1–>響應2–>響應3

管線化的注意事項

後續再更新

csrf攻擊和xss攻擊

前端之http協議

http 是規定了瀏覽器和全球資訊網伺服器之間相互通訊的規則,它有兩個格式,客戶端傳送給服務端的格式叫 請求協議 伺服器傳送給客戶端的格式叫 響應協議 b 瀏覽器 s 服務端 叫bs模式 請求協議的格式如下 請求首行 請求方式 請求路徑 協議和版本 如get index.html http 1.1 ...

http協議 http的成長

http 1.x 實現簡單是以犧牲效能為代價的 二進位制分幀層 http 2.0 將報文分成 headers 幀和 data 幀,它們都是二進位制格式的。在通訊過程中,只會有乙個 tcp 連線存在,它承載了任意數量的雙向資料流 stream 服務端推送 http 2.0 在客戶端請求乙個資源時,會把...

Web前端 HTTP協議

目錄2 post請求 三 http響應報文 http hypertext transport protocol 即超文字傳輸協議。這個協議詳細規定了瀏覽器和全球資訊網伺服器之間互相通訊的規則。http就是乙個通訊規則,通訊規則規定了客戶端傳送給伺服器的內容格式,也規定了伺服器傳送給客戶端的內容格式。...