1、最先想到的就是安全性问题,但是应该是分为两个方面来看看待这个问题。
(1)第一映像就是get是不安全的,post是安全的,因为在发送请求时,get请求将参数都暴露出来了,而post请求则不会将参数显示在url地址中。
(2)第二个理解是:get请求是安全的,post请求是不安全的,因为get请求只为了去服务器拿数据,不会对服务器构成威胁,而如果使用post请求给服务器提交数据,就会产生风险,当然平时写的post请求好像也可以不去提交数据,在SpringBoot项目中,感觉使用@GetMapping和@PostMapping都可以。
2、参数类型,因为get请求只能将参数写在url上,所以对参数类型有严格的规定,只能是ASCTII字符,同时对url的长度也是有限定的,最大长度是2048个字符;相反,post参数类型多样,像声音、视频等,特别是上传文件,一定是会使用到post请求的,post请求对参数的长度没有限制。
3、get请求可以被收藏为书签,而post请求不能。
原因:因为get请求的参数可以缓存在浏览器中,但是post请求的参数无法缓存,这个区别就导致了每次访问get请求都会解析到页面,而post请求的参数会丢失,则无法访问到页面。如果收藏了post请求作为书签,浏览器会将post请求的url当成get请求访问,并且没有参数,所有无法请求到。
个人理解,欢迎指正!