《圖解HTTP》—簡單的HTTP協議

upup發表於2017-10-29

簡單的HTTP協議

客戶端和服務端的通訊

​ 一般請求都是有客戶端發出的,而伺服器回覆的是響應。伺服器相對來說是比較被動的。

客戶端,請求方法 :GET 、地址: / 、協議版本 :HTTP1.1 、請求首部:Host:xxx等。伺服器返回的資訊:HTTP協議版本號,狀態碼以及結果短語、響應首部(響應時間之後的)和資源主體(html開始)。

HTTP協議是無狀態的

​ 一開始在公司做前後分離,引入了token機制,為什麼要這麼做?本質上還是因為HTTP協議是無狀態的。所謂無狀態,就是通訊的雙方沒有記住通訊歷史,協議本身是不保留一切請求和響應的資訊。這也是確保HTTP協議有能夠處理大量事務且具有可伸縮性的原因。

HTTP 方法

​ GET :獲取資源。

​ POST :傳輸實體主體,主要目的是傳輸。

​ PUT : 傳輸檔案,儲存到指定的位置。不帶驗證機制。

​ HEAD : 獲得報文首部,不常用。

​ DELETE :刪除檔案。 同樣不帶驗證機制。

​ OPTIONS :查詢支援的方法。不常用

​ TRACE :追蹤路徑。挺有意思的一個東西。可以計算代理伺服器有多少個,但是容易引發xst攻擊(好想學web安全)。不常用

​ CONNECT :要求使用隧道協議連線代理,不常用。

持久連結節省通訊量

​ 一圖勝千言啊。

​ 1.1裡提出來HTTP keep-alive。持久連結,只要沒有一端提出明確的斷開連結,則保持TCP連結。

​ 管線化。並行傳送響應,無需等待上一個請求結束。

​ 之前說過的,因為HTTP協議是無狀態的,無法判斷登陸驗證,所以需要在請求中新增引數來管理登入狀態。

​ Cookie,伺服器生成Cookie,response 過去,那麼接受的客戶端第二次發請求就可以設定了一個引數,儲存當前登陸的資訊。

​ 如若有錯誤之處,看官多多指正,隨手點個讚唄,親。另外我的微信公眾號也會慢慢釋出前端的東西,希望學習前端的小夥伴可以關注一波moomoocode

相關文章