![dc2880efe17753f05473e6d4ebd2b10b.png](https://i-blog.csdnimg.cn/blog_migrate/95336b3dcf0029f46e466eb3529e0bcb.jpeg)
- 对参数的数据类型,GET只接受ASCII字符,而POST没有限制,允许二进制。
- GET在浏览器回退/刷新时是无害的,而POST会再次提交请求。
- GET请求只能进行url编码(application/x-www-form-urlencoded),而POST支持多种编码方式(application/x-www-form-urlencoded 或 multipart/form-data),可以为二进制使用多重编码。
- POST 比 GET 更安全,因为GET参数直接暴露在URL上,POST参数在HTTP消息主体中,而且不会被保存在浏览器历史或 web 服务器日志中。
- 对参数数据长度的限制,GET方法URL的长度是受限制的,最大是2048个字符,POST参数数据是没有限制的。
- GET请求会被浏览器主动缓存,POST不会,除非手动设置。
- GET请求参数会被完整保留在浏览器历史记录里,而POST中的参数不会被保留。
- GET请求可被收藏为书签,POST不能。
- GET请求是幂等的
![67d085caa9bce2580b00d06338d8f07a.png](https://i-blog.csdnimg.cn/blog_migrate/360f7f0f6e11340a656b6a7f44d9f20f.jpeg)
幂等:从定义上看HTTP方法的幂等性是指一次和多次请求某一个资源应该具有同样的副作用。post不是幂等的
简单举个例子,如果要获取购物车的信息,你用get请求获取多少次,购物车中的内容并不会发生变化。如果你用post请求购物,下订单,请求2次就会下2个订单,资源会发生变化
![2e80a7d637011fea4ce4648d6a5b40db.png](https://i-blog.csdnimg.cn/blog_migrate/045fd847f9c831c39e6e0c6fd4ca2430.jpeg)