get方法會將提交的資料放在url中,即以明文的方式傳遞引數資料
post方法會將提交的資料放在請求體中
get方法傳遞的資料量較小,最大不超過2kb(因為受url長度限制)
post方法傳遞的資料量較大,一般不受限制(大小取決於伺服器的處理能力)
get方法會產生乙個tcp資料報,瀏覽器會把header和data一併傳送出去,伺服器響應200(ok),並回傳相應的資料。
post方法會產生兩個tcp資料報,瀏覽器會先將header傳送出去,伺服器響應100(continue)後,瀏覽器再傳送data,
伺服器響應200(ok),並回傳相應的資料。
http是基於tcp/ip的全球資訊網通訊協議,所以get和post的底層也是tcp/ip鏈結。
打個比方:
tcp就像汽車,我們用tcp來運輸資料,它很可靠,從來不會發生丟件少件的現象。但是如果路上跑的全是看起來一模一樣的汽車,那這個世界看起來是一團混亂,送急件的汽車可能被前面滿載貨物的汽車攔堵在路上,整個交通系統一定會癱瘓。
為了避免這種情況發生,交通規則http誕生了。http給汽車運輸設定了好幾個服務類別,有get, post, put, delete等等。http規定:當執行get請求的時候,要給汽車貼上get的標籤(設定method為get),而且要求把傳送的資料放在車頂上(url中)以方便記錄;如果是post請求,則要在車上貼上post的標籤,並把貨物放在車廂裡。(當然,你也可以在get的時候往車廂內偷偷藏點貨物,但是這是很不光彩;亦可在post的時候在車頂上也放一些資料,讓人覺得傻乎乎的~)
此外,還有另乙個重要的角色:運輸公司。不同的瀏覽器(發起http請求)和伺服器(接受http請求)就是不同的運輸公司。 雖然理論上,你可以在車頂上無限的堆貨物(即在url中無限加引數)。但是運輸公司可不傻,裝貨和卸貨也是有很大成本的,他們會限制單次運輸量來控制風險,資料量太大對瀏覽器和伺服器都是很大負擔。
業界不成文的規定是,(大多數)瀏覽器通常都會限制url長度在2k個位元組,而(大多數)伺服器最多處理64k大小的url。超過的部分,恕不處理。如果你用get服務,在request body偷偷藏了資料,不同伺服器的處理方式也是不同的,有些伺服器會幫你卸貨,讀出資料,有些伺服器則直接忽略。所以,雖然get可以帶request body,也並不能保證一定能被接收到哦。
get只需要汽車跑一趟就把貨送到了,而post得跑兩趟:第一趟,先去和伺服器打個招呼「嗨,我等下要送一批貨來,你們開啟門迎接我」,然後再回頭把貨送過去。
優缺點對比:
get方法安全性低,效率高;post方法安全性高,效率低(耗時稍長)
GET方法與POST方法區別
get請求 1connection keep alivepost請求 20ajax publisher wiley1.post方法將請求資料放在請求正文中,get方法將請求資料放在url中,以?分割url和引數,引數間使用 連線。2.get對傳url大小有限制,post提交資料大小無限制。3.pos...
GET方法與POST方法的區別
區別一 get重點在從伺服器上獲取資源,post重點在向伺服器傳送資料 區別二 get傳輸資料是通過url請求,以field 字段 value的形式,置於url後,並用 連線,多個請求資料間用 連線,如這個過程使用者是可見的 post傳輸資料通過http的post機制,將字段與對應值封存在請求實體中...
GET與POST方法的區別
http請求 get與post方法的區別 http 定義了與伺服器互動的不同方法,最基本的方法是 get 和 post。事實上 get 適用於多數請求,而保留 post 僅用於更新站點。根據 http 規範,get 用於資訊獲取,而且應該是 安全的和 冪等的。所謂安全的意味著該操作用於獲取資訊而非修...