參考博文:
淺談HTTP中Get與Post的區別
1. 數據傳遞方向:
Get是向服務器發索取數據的一種請求,Post是向服務器提交數據的一種請求
(都是請求,并不是一個取一個發)
- Get:①用于獲取信息,而非修改信息 ② 冪等:同一URL的多個請求應該返回同樣的結果
- Post:可能改變服務器上的資源
2. 傳輸信息在HTTP中的位置不同:
- Get:在Http頭部傳輸的
- Post:作為http請求的內容
3. 提交的安全性不同:(Post比Get安全性高)
- Get:請求的數據附在URL之后。將表單中數據的按照variable=value的形式,添加到action所指向的URL后面,并且兩者使用“?”連接,而各個變量之間使用“&”連接(明文提交);
- Post:提交的數據放在HTTP包的包體中,按照變量和值相對應的方式,傳遞到action所指向URL(依照表單提交)。
4. 大小限制:
- Get:傳輸的數據量小,因為特定瀏覽器及服務器限制URL長度
- Post:數據是沒有限制的,起限制作用的是服務器的處理程序的處理能力。
5. 支持的字符集:
- Get:限制Form表單的數據集的值必須為ASCII字符;
- Post:支持整個ISO10646字符集。