GET和POST是HTTP请求的两种方法,其区别如下
① GET请求表示从指定的服务器中获取数据(请求数据),比如查询用户信息;POST请求表示将数据提交到指定的服务器进行处理(发送数据),
② GET请求是一个幂等的请求,一般用于对服务器资源不会产生影响的场景,比如说请求一个网友的资源;而POST请求不是一个幂等的请求,一般用于对服务器资源会产生影响的场景,比如注册用户这一类的操作
幂等是指一个请求方法执行多次和仅执行一次的效果完全相同
③ GET请求能够被缓存在浏览器中,POST请求则不能被缓存下来
GET请求参数会保存在浏览器历史记录内,POST请求并不会
④ GET请求有长度限制,POST请求没有长度限制
GET请求参数是通过URL传输的,而URL的长度往往被浏览器所限制,通常为2048个字符,所以GET请求参数传输长度是被限制的;POST请求参数是存放在请求正文即request body中的,所以其参数传输长度无限制
⑤ GET请求对数据类型有限制,只允许ASCII字符;POST请求对数据类型没有限制,支持更多的数据类型(如文件、图片)
⑥ GET传参方式是通过查询字符串传参,POST传参方式是通过请求体进行传参
⑦ GET查询的字符串参数显示在地址栏的URL中,请求参数是可见的,POST查询字符串不会显示在地址栏中,请求参数是不可见的。因此,POST请求比GET请求安全,比GET请求更适合发送密码或者其他敏感信息,请不要使用GET请求提交敏感数据
POST请求数据不会显示在地址栏中,也不会缓存下来或保存在浏览记录中,所以POST请求比GET请求安全,但也不是最安全的方式,如需要传送敏感数据,请使用加密方式传输