以下分多个方面介绍Get和Post的区别:
1、本质:Get是先服务器获取数据的一种请求,应该是安全且幂等的,而Post是向服务器提交(并更新)数据的一种请求,通常是非幂等。
2、参数传递:Get通过URL传递,参数数据会直接拼接到RUL后面(请求头中),而Post则会将参数数据放到请求体中。
3、数据量:Get小,最多1024个字节(注意是整个URL长度,而不仅仅是参数长度,具体由浏览器及服务器做的限制,Http规范并没有做限制!),而理论上Post没有限制。
4、安全性:Get安全性较低,Post安全性较高。
5、Form提交时默认方法:如果Form中没指定具体方法,则默认使用Get。
6、表现形式:超链接形式使用的是Get,Form表单提交则由Form的method属性具体指定。
7、服务器端Servlet处理方法:Get提交,则服务器会调用doGet()处理,Post提交,则调用doPost()处理。
8、关于Get应该是安全且幂等的补充说明
1)安全意味着该操作用于获取信息而非修改信息,也就是不应该对服务器产生负面作用。
2)幂等意味着对同一URL的多个请求应该返回“相同”的结果。