get和post是HTTP协议中常用的两种请求方法,本质上都是在进行TCP连接,主要区别:
参数位置:
get请求的参数在URL中,以?与URL隔开,多个参数使用&连接;
post请求的参数在请求体中,可以包含任意数据类型,例如表单数据,Json数据等;
安全性:
get请求的参数暴露在URL中,因此不适合传递敏感信息;
post请求的参数在请求体中,相对来说更加安全;
处理方式:
get请求一般用于获取数据,从服务器请求资源,并返回响应数据;
post请求一般用于传递数据,将数据上传到服务器进行处理,并返回响应结果;
缓存机制:
get请求默认开启浏览器缓存机制,因为get请求无副作用(不会对服务器上的资源进行修改),重复请求得到的数据相同;
post请求默认禁用浏览器缓存机制,因为post请求可能对服务器上的资源进行修改,重复请求得到的结果可能不同;
请求长度限制:
get请求的参数长度受URL长度限制,因此参数较长可能会发生截断;
post请求的参数长度理论上没有限制,但实际上服务器和客户端都可能设置最大长度限制;