GET和POST区别

GET和POST是HTTP协议中的两种发送请求的方法。基于TCP/IP

本质区别

GET产生一个TCP数据包,POST产生两个TCP数据包,换而言之:

GET方式的请求,浏览器会把http header和data一并发送出去,服务器响应200(返回数据);

POST,浏览器先发送header,服务器响应100 continue,浏览器再发送data,服务器响应200 ok(返回数据)。

影响

因为发送数据包次数不同所以会产生影响:在网络环境好的情况下,发一次包的时间和发两次包的时间差别基本可以无视。而在网络环境差的情况下,两次包的TCP在验证数据包完整性上,有非常大的优点。

用法的区别

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

必须使用 POST 的情况

你可能感兴趣的:(GET和POST区别)