Get和Post的区别:
1、传送方式:
Get请求数据在URL中,以?分割URL和传输数据,参数之间使用&;
Post请求数据可以在URL中,也可以在请求体中。
2、对数据长度的限制:
Get方法向URL中添加数据时,URL长度受限制,一般来说URL的长度为2K;
Post中无限制。
3、对数据类型的限制:
Get只允许ASCll字符;Post对数据类型没有限制,允许二进制数据等。
4、安全性:
Get的安全性低,因为要发送的数据位URL的一部分,不适用于发送密码或访问敏感资源;
Post安全性高一些,因为数据在请求体中。
5、缓存:
Get请求会被浏览器主动cache;Post不能被缓存,除非手动设置。
6、历史记录:
Get请求参数会被保留在浏览器历史记录里;Post中的参数不会被保留。
7、在浏览器中回退
Get在浏览器回退是无害的;Post会再次提交请求
8、Get、Post请求发送数据包:
Get请求产生一个TCP数据包;Post请求产生两个TCP数据包。
- 对于Get方式的请求,浏览器会把http header和data一起发送出去,服务器响应200(返回数据);
- 对于POST,浏览器先发送header,服务器响应100 ,浏览器再发送data,服务器响应200 ok(返回数据)。