HTTP協議類
1、HTTP協議的主要特點:
簡單快速(統一資源符UII固定)
靈活(頭部有數據類型)
無連接(不會保持連接)
無狀態(服務端不能區分二次連接者身份)
2、HTTP報文的組成部分
請求報文:請求行 (http方法 頁面地址 協議 版本),請求頭(key:value),空行(請求頭的結束標誌),請求體
響應報文:狀態行 響應頭 空行 響應體
3、HTTP方法
GET : 獲取資源
POST:傳輸資源
HEAD:獲得報文頭部
PUT:更新資源 DELET:刪除資源 (這兩個不常用)
4、POST 和GET的區別(說出加粗部分即可)
GET在瀏覽器回退是無害的,POST會再次請求
GET產生的URL地址可以被收藏,POST不會
GET請求會被瀏覽器主動緩存,而POST不會,除非手動設置
GET請求只能進行URL編碼,而POST支持多種編碼方式
GET請求參數會被完整保留在瀏覽器歷史記錄裏,而POST中參數不會
GET請求在URL中傳送的參數是有長度限制的(2kb),而POST沒有
GET對參數的數據類型,GET只接受ASCII字符,而POST沒有限制
GET比POST更不安全,因為參數直接暴露在URL上不能用來傳遞敏感信息
GET參數通過URL傳遞,POST放在Request body中
5、HTTP狀態碼
1xx:提示信息——表示請求已接受,繼續處理
2xx:成功——表示請求已被成功接受
3xx:重定向——要完成請求必須更進一步操作
4xx:客戶端錯誤——請求有語法錯誤或請求無法實現
5xx:服務端錯誤——服務器未能實現合法請求
常見類型:
200:ok 客戶端請求成功
206:Parital Content 客戶發送了一個帶有Range頭的GET請求,服務器完成了它
301:Moved Permanently 所請求的頁面已經轉移到新的url,永久重定向
302 Found 所請求的頁面已經臨時轉移至新的url
304 客戶端有緩沖的文檔並發出了一個請求,服務器告訴客戶,用來緩存的文檔還可以繼續使用
400 客戶端請求有語法錯誤,不能被服務器理解
401 請求未經授權,
403 對被請求頁面的訪問被禁止
404 請求資源不存在
500 服務器發生不可預期的錯誤原來緩存的文檔可繼續使用
503 請求未完成 服務器臨時過載或宕機,一段時間後可能恢復正常
6、持久連接
(1)http協議采用“請求-應答”模式,當使用普通模式,即非keep-alive模式時,每個請求-應答客戶和服務器都要新建一個連接,完成之後立即斷開連接(http協議是無連接協議)
(2)當使用keep-alive(又稱持久連接,連接重用)時,keep-alive功能避免了簡歷或者重新建立連接
7、管線化
在使用持久連接的情況下,某個連接上消息的傳遞類似於:
請求1 ->響應1 ->請求2 ->響應2 ->請求3 ->響應3
管線化就是某個連接上的消息變成了類似這樣:
請求1 ->請求2 ->請求3 ->響應1 ->響應2 ->響應3
特點:
管線化機制通過持久連接完成,僅HTTP1.1支持此技術
只有GET和HEAD請求可以進行管線化,而POST有所限制
初次創建連接時,不應啟動管線機制,因為服務器不一定支持HTTP1.1協議
HTTP協議類