在客戶機和服務(wù)器之間進行請求-響應(yīng)時,兩種最常被用到的方法是:GET 和 POST,除了這兩種還有PUT和DELETE
GET - 從指定的資源請求數(shù)據(jù)
POST - 向指定的資源提交要被處理的數(shù)據(jù)
POST和GET是HTTP獲取數(shù)據(jù)的兩種方法,HTTP底層是用TCP/IP來實現(xiàn)的,所以POST和GET也是用TCP/IP協(xié)議來獲取數(shù)據(jù)的
- GET在瀏覽器退回的時候是無害的,而POST回確認重新提交
- GET的參數(shù)是在URL中的,POST的參數(shù)在request body中
- GET請求會被自動瀏覽器緩存,而POST不會,除非設(shè)置
- GET比POST更不安全,因為GET傳輸?shù)膮?shù)暴露在URL中
- GET傳送的數(shù)據(jù)長度有限制,最大不能超過2K。而POST默認為不受限制
- GET請求參數(shù)會保留在瀏覽器歷史記錄里,而POST中的參數(shù)不會被保留
- GET是發(fā)送一個數(shù)據(jù)包,瀏覽器會把 http header 和 data 一起發(fā)送出去,服務(wù)器響應(yīng)200 并返回數(shù)據(jù)
- POST會發(fā)送兩個數(shù)據(jù)包,瀏覽器會先發(fā)送 header 服務(wù)器響應(yīng)100 continue,瀏覽器繼續(xù)發(fā)送 data 服務(wù)器響應(yīng)200 返回數(shù)據(jù)(有些瀏覽器只發(fā)送一個數(shù)據(jù)包,有些框架封裝POST的時候回先發(fā)送header在發(fā)送data,而大部分都是發(fā)送一個數(shù)據(jù)包)
以上都是瀏覽器或者是服務(wù)器添加的一些限制,