簡單的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連結。
管線化。並行傳送響應,無需等待上一個請求結束。
使用Cookie 管理狀態
之前說過的,因為HTTP協議是無狀態的,無法判斷登陸驗證,所以需要在請求中新增引數來管理登入狀態。
Cookie,伺服器生成Cookie,response 過去,那麼接受的客戶端第二次發請求就可以設定了一個引數,儲存當前登陸的資訊。
如若有錯誤之處,看官多多指正,隨手點個讚唄,親。另外我的微信公眾號也會慢慢釋出前端的東西,希望學習前端的小夥伴可以關注一波moomoocode