從學習程式設計開始,關於get請求和post請求的問題就一直困擾著我。今天就簡單說說兩者的區別。先來看看http是什麼?
http總共有8中請求方法,我們最常見也是最常用到的就是get和post請求。現在就簡單說說get和post請求的區別:
1.http協議既然有了這兩個方法,就是為了在特定的情況下區分應用。就有了我們所說的get是獲取資料,post是提交資料的。
2.get傳輸資料的時候是在url位址中的、對所有人都是是可見的、是不安全的、是有瀏覽器快取記錄的。所以說get是不安全的,傳送密碼等資料的時候不要用get傳輸。
get只能傳輸ascll字元,不能進行編碼。
post傳輸的時候是放在http的請求體之中的,並且是經過urlencode編碼的所以是相對安全的。
post是沒有對資料型別的限制的,二進位制資料也是可以的。
3.http協議並沒有對get和post的長度做限制,其實是瀏覽器限制了他們傳輸大小。
url位址是有長度限制的,瀏覽器不同長度限制的具體數值也是不一樣的。比如ie是2083位元組。需要注意的是這些僅僅是url位址列的長度限制。
理論上來說post的長度是沒有限制的,但是受伺服器的配置限制或者記憶體大小的限制,造成了實際開發中post也是有資料長度的限制的。可以在php下修改php.conf中的postmaxsize值來設定post的大小。
4.
為什麼說get比post更快?有乙個原因是post需要在請求的body部分包含資料,所以會多了幾個描述部分的首部字段比如:content-type,但這是微乎其微的,可以忽略不計。
另外一種願意是post和get請求的過程是不一樣的
post請求的過程:先進行3次握手,然後伺服器返回100continue響應,瀏覽器再次傳送資料,伺服器返回200成功響應。
get請求的過程:也是先進性3次握手,然後伺服器返回成功響應。
也就是說post是要比get多進行一次資料傳輸的,所以get請求就比post請求更快。
但是在現在伺服器配置較高和網速較快的情況下,這多出來的一次資料傳輸在實際中並沒有什麼影響。
5.因為get是獲取資料,所以get請求是安全且冪等的,是無害的。這個安全指得是對資料不會造成影響。冪等簡單的來說就是無論獲取多少次資料得到的資源都是一樣的。
post是向伺服器傳輸資料,資料會被重新提交,所以就會有對原有的資料造成傷害。
以上就是我總結的關於post和get的區別,如果有錯誤請指正。
SpringMVC中post和get的區別
這是一篇我在csdn上的第一篇部落格,請大家多多支援。在前面我先宣告 這篇文章的內容基本上都是網上各部落格的,我只是整理一下,給需要的人梳理一下而已。首先先放個人覺得比較好的關於post和get的區別的分析的鏈結 在講區別前先講一下 requestbody。requestbody主要用來接收前端傳遞...
在http請求中,get和post有什麼區別
世界上並沒有完美的程式,但是我們並不因此而沮喪,因為寫程式就是乙個不斷追求完美的過程。get?post?在做 開發時,大家經常會使用http的get與post方法,但是這兩個method有什麼區別呢?在說區別之前,大家要明白一點,get和post都是基於http協議的,所以本質上是一致的。因此區別是...
HTTP中get和post區別
記得剛開始學習web技術的時候老師教我們的get和post區別是什麼 1.get用於獲取資料 post用於提交資料 2.get攜帶的資料大小比post少 3.get不安全 post安全 當開始找工作的時候面試官問我這倆的區別的時候我很自信的重複了之前老師講的區別 面試官問 除了get和post還有其...