概念

get请求与post请求都是http协议请求头中的的请求方法,它们的作用都是向服务器发送请求参数。

区别

  1. url可见性

get请求发送请求参数时,会将参数显示在浏览器的url地址栏上,使用?来携带,如果有多个则用&来拼接。
post请求发送请求参数时,会将参数显示在浏览器的url地址栏上,而是将参数存储到http请求头中的请求体中。

  1. 传输数据大小

get传输数据有大小的限制,一般以2-4k
post传输数据的大小是没有限制的,可以修改成无限大。

  1. 后退页面的反应

get请求后退后不会发送新的请求,而post在后退时,会重新发送一次新的请求。

  1. 是否被浏览器缓存

get请求会被浏览器主动缓存,而post请求不会,但是可以手动设置缓存。

  1. 是否保留到浏览器历史记录

get请求的参数会被保存到浏览器的历史记录中,而post不会。

  1. 编码方式

get请求只支持发送ASCII吗的参数类型,只支持url编码,而post请求没有限制,支持多种编码格式。

  1. 安全性

显然post比get更为安全,因为get请求在很多时候请求参数都是轻易可见的,可以简单的从url从看到。

  1. post优点那么多,那为什么还要有get呢?

因为get的效率更高!! get常用于一些没有存在安全隐患的场景,例如查询一些公共资源…

参考:https://blog.csdn.net/FlyPigYe/article/details/91865135