1.http協議特點
- 簡單快速:URI 統一資源符是固定的
- 靈活:
- 無連接:連接一次就會斷開
- 無狀態:客戶端、服務端兩種身份
2.請求報文
請求行(http 方法,頁面地址,請求方法)、請求頭(參數key:value)、空行、請求體
3.響應報文
狀態行、響應頭、空體、響應體
4.HTTP方法
- GET -- 獲取資源
- POST -- 傳輸資源
- PUT -- 更新資源
- DELETE -- 刪除資源
-
HEAD -- 獲取報文首部
5.HTTP get和post區別
- GET在瀏覽器回退時無害,POST會再次請求
- GET產生的URL地址可以被收藏,而POST不可以
- GET請求會被瀏覽器主動緩存,而POST不會,除非手動設置
- GET請求參數會被完整保留在瀏覽器歷史記錄裏,而POST中的參數不會
- GET請求在URL中傳輸的參數是有長度限制的,而POST沒有
- GET參數暴露在URL裏,沒有POST安全
- GET參數 通過 URL傳遞,POST放在request body裏
6.HTTP狀態碼
- 1xx:指示信息,表示請求已經接收,繼續處理
- 2xx:成功,表示請求已經被成功接受
- 3xx:重定向,要完成請求必須進行更進一步的操作
- 4xx:客戶端錯誤,請求有語法錯誤或者請求無法實現
- 5xx:服務器錯誤,服務器未能實現合法的請求
- 200 OK:客戶端請求成功
- 302 :重定向,所請求的頁面臨時轉移到新的url
- 304: 客戶端有緩存的文檔併發出一個條件性的請求,服務端告訴用戶,原來緩存的文檔還可以繼續使用
- 403: 請求的資源被禁止訪問
- 404: 請求資源不存在
- 500:服務器錯誤
- 503: 服務器臨時過載或者當機
7.持久連接
僅HTTP1.1支持
HTTP使用“請求-應答”模式,每個請求,客戶端和服務器都會新建一個連接,完成後連接斷開
使用Keep-Alive(持久連接、連接重用)時,Keep-Alive會使客戶端和服務器的連接持續有效,當出現對服務器的後繼請求,避免重新建立連接
8.管線化
僅HTTP1.1支持,只有GET和HEAD請求能夠進行管線化,POST會有限制
持久連接情況下,請求一次響應一次
請求1-> 響應1-> 請求2 -> 響應2-> 請求3-> 響應3
將請求打包發送
請求1-> 請求2 -> 請求3-> 響應1-> 響應2-> 響應3