使用上的区别
- GET通过URL或Cookie传参,而POST将数据放在BODY中(是HTTP的约定)
- GET方式提交的数据有长度限制,而POST的数据则可以非常大。HTTP协议对GET和POST长度没有限制,并且对HTTP头和Body都没有长度的要求。只是因为它们使用的操作系统和浏览器设置的不同引起的区别。
- POST比GET安全,因为数据在地址栏上不可见。通过GET提交数据,用户名和密码将明文出现在URL上,因为登录页面有可能被浏览器缓存,其他人查看浏览器的历史纪录,那么别人就可以拿到你的账号和密码了,除此之外,使用GET提交数据还可能会造成Cross-site request forgery攻击。
本质区别
GET和POST最大的区别主要是GET请求是幂等性的,POST请求不是。
幂等性是指一次和多次请求某一个资源应该具有同样的副作用。简单来说意味着对同一URL的多个请求应该返回同样的结果。
而增删改的操作不具有幂等性,故不能用GET做增删改的操作
[]: https://juejin.im/entry/597ca6caf265da3e301e64db