GET 和 POST 的区别(重要,面试常问)
1.GET 在浏览器回退时是无害的,而 POST 会再次提交请求。
(get:不会再次发送请求;post:浏览器会继续向URI发送请求)
2.GET 产生的 URL 地址可以被 Bookmark(添加到书签),而 POST 不可以。
(可以被浏览器添加到书签当中的;)
3.GET 请求会被浏览器主动 cache(缓存),而 POST 不会,除非手动设置。
4.GET 请求只能进行 url 编码,而 POST 支持多种编码方式。
5.GET 请求参数会被完整保留在浏览器历史记录里,而 POST 中的参数不会被保留。
(传递的参数会拼接和绑定到url当中,历史记录保留的是url,因此参数就可以保留下来,post的参数是通过请求体来传递的请求体不是放到url当中的所有不会保留下来)
6.GET 请求在 URL 中传送的参数是有长度限制的,而 POST 则没有。对参数的数据类型 GET只接受字符类型,而 POST 即可以是字符也可以是字节。
7.GET 比 POST 更不安全,因为参数直接暴露在 URL 上,所以不能用来传递敏感信息。
8.GET 参数通过 URL 传递,POST 放在 Request body (请求体)中。