HTTP知識點總結

2021-10-21 04:39:57 字數 1391 閱讀 2025

http 是超文字傳輸協議,也就是hypertext transfer protocol。

uri(統一資源識別符號)

url(uniform resource locator,統一資源定位符)

無狀態:伺服器不維護任何有關客戶端過去所發請求的資訊

主要使用 ssl(secure sockets layer,安全套接 層)和 tls(transport layer security,傳輸層安全)協議把通訊內容 加 密後經網路隧道傳輸

從快取的角度,get 請求會被瀏覽器主動快取下來,留下歷史記錄,而 post 預設不會。

從編碼的角度,get 只能進行 url 編碼,只能接收 ascii 字元(encodeuri()編碼),而 post 沒有限制。

從tcp的角度,get 請求會把請求報文一次性發出去,而 post 會分為兩個 tcp 資料報,

首先發 header 部分,如果伺服器響應 100(continue), 然後發 body 部分。

http 報文本身是由多行(用 cr+lf 作換行符)資料構成的字串文字。

通用首部字段

請求首部字段

響應首部字段

實體首部字段

逐跳首部(hop-by-hop header)

severhello:伺服器收到客戶端請求後,向客戶端發出響應

客戶端回應

客戶端收到伺服器的回應之後,首先通過瀏覽器或者作業系統中的 ca 公鑰,確認伺服器的數字證書的真實性。

如果證書沒有問題,客戶端會從數字證書中取出伺服器的公鑰,然後使用它加密報文,向伺服器傳送響應

伺服器的最後回應:伺服器收到客戶端的第三個隨機數(pre-master key)之後,通過協商的加密演算法,計算出本次通訊的「會話秘鑰」

tls1.3 改進為只需3次握手

主要缺點:每個 tcp 連線只能傳送乙個請求

流水線處理

快取處理

頻寬優化及網路連線的使用

host 頭處理

http1.1 的請求訊息和響應訊息都應支援 host 頭域,且請求訊息中如果沒有 host 頭域會報告乙個錯誤(400 bad request)

面臨問題

安全性

header開銷

keep-alive 開銷

請求優先順序(request prioritization)

header 壓縮

加密傳輸

服務端推送(server push)

例如我的網頁有乙個 sytle.css 的請求,在客戶端收到 sytle.css 資料的同時,服務端會將 sytle.js 的檔案推送給客戶端,當客戶端再次嘗試獲取 sytle.js 時就可以直接從快取中獲取到,不用再發請求了

http/2.0的hpack演算法

對比spdy採用二進位制分幀

HTTP知識點總結

唉扯遠了,說點實在的吧。web相關的開發人員應該都知道http協議的重要性,無論是做後端還是前端,安卓還是ios,都要跟http打交道。想必用fiddler除錯web api的時候,對返回的各種4xx 5xx狀態碼感到一頭霧水絕不是什麼愉快的體驗。最近也是複習了一些相關的知識,今天就總結一下。通常所...

HTTP 校招知識點總結

http協議概述http報文格式請求方法與響應碼瀏覽器搜尋到頁面顯示的過程,http與tcpsession與cookieshttp1.0,1.1,2.0restful 程式設計風格https http是指超文字傳輸協議,顧名思義就是通過網路在主機之間傳遞超文字的一種協議,廣泛用於bs 瀏覽器和web...

Http協議知識點

1.型別 http伺服器會給在http中傳送的http資源物件附加乙個mime型別,接收http資源物件的客戶端會根據這個型別來判斷是否能夠進行處理,例如瀏覽器就能夠處理上百種mime型別的http資源物件 2.mime型別是一種文字標記,表示一種主要物件型別和一種特定的子型別,中間用一條斜槓來分隔...