POST請求和GET請求的區別,以及請求報文

2021-09-23 15:37:50 字數 1138 閱讀 2512

post和get二者都是http請求的基本方法。post請求和get請求的區別經常會在出現在面試題中,自己在這裡整理了下。

首先從http規範上講

get是從指定的資源請求獲取資料,應該是安全而冪等的。這裡的安全是指get就像資料庫的查詢操作一樣,不會修改增加資料,也不會影響資源的狀態;

post是向指定的資源提交要被處理的資料,是用於可能修改指定資源的請求。會像資料庫的刪除、增加、修改資料一樣,可以影響資源的狀態。

從安全性上講(這裡的安全與上文的安全不同,這裡指使用者資訊方面的安全性)

get資料通過url傳遞,資料是會直接暴露在url上,並且資料會保留在瀏覽器歷史中,是能被快取,可收藏為書籤的,所以安全性非常低;*

*post資料則是放在request body(即請求報文的請求體)中,資料不會保留在瀏覽器歷史或web伺服器日誌,不能被快取,不可收藏為書籤,所以post的安全性要比get的安全性高。

get請求和post請求都有自己的語義,不能隨便混用。在傳送密碼或其他敏感資訊時絕對不要使用get請求!

其他方面

資料長度的限制方面,傳送資料時,get 請求向 url 新增資料;url 的長度是受限制的(url 的最大長度是 2048 個字元)。而post請求是無限制的。

資料型別方面,get只接受ascii字元,而post沒有限制。

關於請求報文

乙個http請求報文由請求行(request line)、請求頭部(request header)、請求體(request body)3個部分組成。

get請求的請求報文:

post請求的請求報文:

get請求和post請求的請求報文結構上是相同的,但內容是不同的。

請求報文的第一行是請求行。請求行按照 請求方式 位址 協議的順序構成。

請求行下面是請求頭

最後用空行與前面隔開的部分稱為請求體

Get請求和Post請求區別

1.提交的資料型別 get為文字 post為文字和二進位制資料 2.提交的資料長度 get不超過255個字元 post沒有限制 3.提交資料的可見性 get作為url的一部分顯示在位址列裡 post作為請求的訊息體不可見 4.緩衝 get緩衝在瀏覽器url歷史狀態中 post不會被緩衝 5.表單中 ...

get請求和post請求區別

http請求方式有get post put delete等多種,最常用的就是get和post 多種請求方式 1 get請求一般用去請求獲取資料,post一般作為傳送資料到後台時使用2 get請求也可傳參到後台,但是其引數在瀏覽器的位址列的url中可見,所以私隱性安全性較差,且引數長度也是有限制的 p...

get請求和post請求的區別

使用http協議將客戶端的請求傳送到伺服器端有哪兩種方式?請簡述它們的區別 1 get是從伺服器上獲取資料,post是向伺服器傳送資料。2 在客戶端,get方式在通過url提交資料,資料在url中可以看到 post方式,資料放置在html header內提交。3 對於get方式,伺服器端用reque...