<h2>GET和POST是HTTP協議中的兩種發送請求的方法。基于TCP/IP</h2>
<h2>本質區別</h2>
GET產生一個TCP數據包,POST產生兩個TCP數據包,換而言之:
GET方式的請求,瀏覽器會把http header和data一并發送出去,服務器響應200(返回數據);
POST,瀏覽器先發送header,服務器響應100 continue,瀏覽器再發送data,服務器響應200 ok(返回數據)。
<h4>影響</h4>
因為發送數據包次數不同所以會產生影響:<strong>在網絡環境好的情況下,發一次包的時間和發兩次包的時間差別基本可以無視。而在網絡環境差的情況下,兩次包的TCP在驗證數據包完整性上,有非常大的優點。</strong>
<h2>用法的區別</h2>
1.刷新后GET是無害的但POST數據會被重新提交;
2.GET可以收藏為書簽,POST不可以收藏為書簽;
3.GET能進行緩存,POST不能緩存;
4.GET編碼數據類型只允許ASCII,POST沒有數據類型限制;
5.GET參數可以保留在瀏覽器歷史中,POST參數不保存;
6.GET數據長度有限制,最大2048字符,POST沒有限制;
7.GET安全性較差,POST比較安全;
8.GET參數通過URL傳遞,POST放在Request body中。
<h2>必須使用 POST 的情況</h2>