post那麼多優點,為什麼還用get

2021-08-16 07:17:50 字數 1562 閱讀 5787

可以看一下http協議的內容 http請求主要有三種方式 get,head,post ,而ie發起乙個請求一般包含,訊息頭和訊息體, 如果請求的方式是get或者head方式,那麼ie只傳送訊息頭到伺服器, 如果是post請求,那麼訊息體(網頁表單內容)和訊息頭都將傳送到伺服器,這樣資料量就比其它兩種方式的大一些 那麼,依照上面所說,get方式請求,速度更快,但是,由於url是暴露在了使用者面前,可能導致sql注入等非法攻擊, 用post方式提交,速度會慢一些。但是由於url是隱藏在了表單中,所以安全性會好一點,這就是為什麼,一般登入頁面都用post提交而不用get提交

減低伺服器流量壓力

根據 http 規範,get 用於資訊獲取,而且應該是 安全的和 冪等的。所謂安全的意味著該操作用於獲取資訊而非修改資訊。換句話說,get 請求一般不應產生***。冪等的意味著對同一 url 的多個請求應該返回同樣的結果。完整的定義並不像看起來那樣嚴格。從根本上講,其目標是當使用者開啟乙個鏈結時,她可以確信從自身的角度來看沒有改變資源。比如,新聞站點的頭版不斷更新。雖然第二次請求會返回不同的一批新聞,該操作仍然被認為是安全的和冪等的,因為它總是返回當前的新聞。反之亦然。post 請求就不那麼輕鬆了。post 表示可能改變伺服器上的資源的請求。仍然以新聞站點為例,讀者對文章的註解應該通過 post 請求實現,因為在註解提交之後站點已經不同了(比方說文章下面出現一條註解)

get 的本質是「得」,而 post 的本質是「給」。而且,get 是「等冪」的,在這一點上,get 被認為是「安全的」。

get 的內容可以被瀏覽器快取,而 post 的資料不可以。

所以get主要用來「讀取」資料,而「post」主要用於修改、插入資料。

1、多數瀏覽器對於post採用兩階段傳送資料的,先傳送請求頭,再傳送請求體,即使引數再少再短,也會被分成兩個步驟來傳送(相對於get),也就是第一步傳送header資料,第二步再傳送body部分。http是應用層的協議,而在傳輸層有些情況tcp會出現兩次鏈結的過程,http協議本身不儲存狀態資訊,一次請求一次響應。對於tcp而言,通訊次數越多反而可靠性越低,能在一次鏈結中傳輸完需要的訊息是最可靠的,盡量使用get請求來減少網路耗時。如果通訊時間增加,這段時間客戶端與伺服器端一直保持連線狀態,在伺服器側負載可能會增加,可靠性會下降。

2、get請求能夠被cache,get請求能夠被儲存在瀏覽器的瀏覽歷史裡面(密碼等重要資料get提交,別人檢視歷史記錄,就可以直接看到這些私密資料)post不進行快取。

3、get引數是帶在url後面,傳統ie中url的最大可用長度為2048字元,其他瀏覽器對url長度限制實現上有所不同。post請求無長度限制(目前理論上是這樣的)。

4、get提交的資料大小,不同瀏覽器的限制不同,一般在2k-8k之間,post提交資料比較大,大小靠伺服器的設定值限制。

5、全部用post不是十分合理,最好先把請求按功能和場景分下類,對資料請求頻繁,資料不敏感且資料量在普通瀏覽器最小限定的2k範圍內,這樣的情況使用get。其他地方使用post。

如果沒有考慮到使用者體驗的問題,如果get方式,url會變化,post則不會。

如果使用者想要將他搜尋的結果鏈結複製給其他人,那麼通過get方式,他人可以直接訪問到搜尋結果,如果是post方式,則只會顯示最初的搜尋介面。

為什麼那麼多「偽需求」?

為什麼有那麼多 偽需求 做產品或做工具,經常碰到 偽需求 的問題,其實業界早有定論,使用者說不清楚自己的需求是什麼?有兩個流行的著名故事,第乙個故事,在汽車出現之前,福特去調研使用者,眾多使用者表示 我們需要一輛更快的馬車 第二個故事,大學城邊酒店林立,競爭激烈,其中一家的酒店老闆開始使用者調研,每...

為什麼華為加班那麼多

為什麼華為加班那麼多?十年前,pc機 個人電腦 的記憶體還是256k,512k為主流,再往前,記憶體就更小了。為了節省空間,編寫的程式都是很精練的。是否還記得有這樣一道演算法題 不用額外的變數,交換兩個變數的值。連乙個臨時變數的空間都節省了。現在的pc機記憶體已是4g,8g為主流了,伺服器的記憶體就...

為什麼存在那麼多光棍

調查物件 28歲 35歲的100名單身男女 男女各50名 學歷從中專至研究生 職業 公務員 教師 營業員 自由職業者 警察等。調查方式 發放問卷100份調查問卷 調查形式 街頭隨機調查 網路調查 調查 調查結論 50名被調查男性中,27 的人認為,自己沒有女朋友的原因是,現在的女孩都是 野蠻女友 她...