1.1.GET产生一个TCP数据包;POST产生两个TCP数据包;
对于GET方式的请求,浏览器会把http header和data一并发送出去,服务器响应200(返回数据)
对于POST,浏览器先发送header,服务器响应100 continue,浏览器再发送data,服务器响应200 ok(返回数据)。
1.2.后退刷新 ,get请求是无害的,post请求数据会被重新提交
2.get请求的地址会被保存在浏览器历史或者web服务器日志中,而post不会,且get参数是在url里的,所有post安全一点
3.get请求浏览器只支持url编码(url编码:对非Ascll码字符进行编码,解决参数中带有&,=等特殊符号引起歧义,方式是把特殊符号转化乘ascll码并在前面加%)。
post请求浏览器根据contentType进行编码,在ContentType("text/html; charset=GBK")里。
如:application/x-www-form-urlencoded
multipart/form-data
application/json
text/xml
出现乱码的根本原因是客服端的编码方式和服务器端的编码方式不同,所以需要手动设置
4.get方式参数是放在url后面,而post是放在requestbody里面。
5.get方法数据类型只能是ASCII字符,而post方法数据类型没有限制
6.get请求参数长度有限制(URL 的最大长度是 2048 个字符),因为url长度有限制,而post请求没有。