虽然POST 和 GET的区别这个知识点好像已经很共识了,但总觉得还是不太能理解真正的区别,毕竟日常使用中都没有做太多的区分。所以网上又学习总结了一下,减少日常使用中的疑惑和不安。
1)使用场景不同:POST一般建议用在提交数据、更新数据;GET更建议用在获取数据的场景。
2)传递参数的方式不同: GET的参数是放在URL后面传递,URL长度收到浏览器和服务器限制,所以参数不能太长。POST 参数建议封装在RequestBody,长度通常没有限制。
3)安全性不同: GET的参数暴露在URL中,安全性相对较低,不适合传输敏感信息。且URL会被保存到浏览器的历史记录中,同样不安全。POST不存在这两点风险。
但实际以上区别只是当初设计初衷如此,真正开发使用中,只要业务功能满足用户需求即可,可以不用考虑使用场景。
而且POST也只是相对安全,POST参数在浏览器的开发者工具中也是可以看到的,真正需要保护的数据,应该通过加密参数等方法更有效。
所以开发使用中大部分情况,是不需要区分的。至少目前我理解如此,如有不同的理解希望大家留言给我学习。