HTTP協議類POST 和GET的區別

大橘子發表於2019-02-16
  1. HTTP協議的方法有五種

GET、POST、PUT、DELETE、HEAD

  1. GET POST的區別

GET 在瀏覽你退回時是無害的,POST會在次傳送請求
GET 產生的URL地址可以被收藏,而POST不可以
GET 請求會被瀏覽器主動快取,而POST不會
GET請求只能進行url編碼,而POST支援多種編碼
GET請求引數會被完整的保留在瀏覽器歷史記錄裡,而POST引數不會被保留
GET請求在URL中傳送的引數是有長度限制的,而POST沒有限制
對比引數的資料型別GET只接受ASCII 字元,而post沒有限制
GET比POST更不安全,因為引數直接暴露在URL上不能用來傳遞敏感資訊
GET引數通過URL傳遞,POST放在request body中
HTTP狀態碼
1,2,3,4,5 200客戶端請求成功 206 partial Content: 客戶傳送了一個帶有Range頭的get請求,伺服器完成了它返回,就是拆分客戶端傳送資料
301永久重定向302臨時重定向304快取
400 客戶端語法錯誤 401 未經授權 必須和WWW-Authenticate報頭域一起使用
403 請求頁面被禁止訪問
404 notfond 600 伺服器發生錯誤,503 請求未完成伺服器過載或當機一段時間後可能恢復正常

HTTP 是無連線無狀態的,採用的是請求應答的模式
當使用普通模式每一個請求都要新建一個連線 完成之後斷開連線
當使用KEETP-alive模式 持久連線時 keepalive 功能使客戶端到服務的連線持續有效,當出現對伺服器的後續請求時,keepalive功能避免了建立連線或者重新建立連線

管線化

在使用持久連線的情況下 某個連線上的訊息傳遞類似於 請求-相應-請求2-相應2-請求3-響應3
某個連線上的訊息變成了請求123,響應123
管線化通過持久連線完成,僅支援http1.1 只有get和head請求可以進行管線化
初次建立連線不應該啟動管線化,不知道伺服器是否支援,現代瀏覽器預設沒有開啟管線化

相關文章