<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>