1,Get中數據大小被限制
我們都知道很多老式浏覽器把URL的字符串個數被限制在255個之內;雖然現在的新版浏覽器早就沒有這個蛋疼的限制,但是我們可不敢保證所有來站點訪問的用戶都是使用新版浏覽器的。所以當我們需要用戶在網頁中填寫一些信息時,使用Get方式肯定會出問題。相反Post方法中沒有這個限制,我們可以傳輸任意大小的數據。
2,Get中的數據類型不靈活
因為Get是使用url來傳輸數據的,那麼比如空格字符以及類似&這樣的字符就不方便傳輸。我們可以使用發送前編碼,以及接受後解碼的方法來解決。
3,安全性
在Get中,參數是以名值對的查詢字符串掛接在url後綴來傳輸的,所以這個非常容易被浏覽器歷史記錄中查詢到。所有的數據也都是以文本方式提交,所以我們知道比如登錄操作的密碼是絕對不能使用Get方式來提交。相反,Post方法就安全多了。所有的名值對都是以消息體的方式在Http Request的方式傳輸。
4,速度
顯然Get比Post要快。
5,書簽
其實有幾個情況下用Get更好,比如你能將名值對參數以書簽的方式存儲並直接在子啊表單中使用。但在Post下是無法做到的。
6,表單上傳
以表單方式上傳文件只能使用 Post 方式實現,Get幾乎不可能。
7,數據丟失
在服務器對Get方式提交的數據編碼時可能會數據丟失。但對於Post是不會的。
8,傳輸方式
Get使用棧方法傳輸表單變量,而Post使用HEAP方法來傳輸表單變量。
9,參數個數限制
Get最多也就一次性傳輸18個參數而Post沒有這個限制。
*