相同点
get和post本质上都是TCP连接,由于http的规定和浏览器/服务器的限制,使它们在应用过程中体现不同。
区别
参数传递方式:
get请求把参数包含在url中,post通过body传递参数。
编码方式不同:
get请求只能进行URL编码(application/x-www-form-urlencoded)post请求支持多种编码方式。
参数长度限制:
get传送的数据大小不能大于2KB,post传送数据大小较大,一般默认不受限制。
缓存机制不同:
get请求会被浏览器主动缓存,post不会,除非手动设置。
###
get请求方式刷新浏览器或回退时没有影响,post回退时会重新提交数据请求。
请求时get产生一个tcp数据包,post产生俩个tcp数据包
GET请求,浏览器会把http header和data一并发送出去,服务器响应返回数据。
POST请求,浏览器先发送header,服务器响应100 continue,浏览器再发送data,服务器响应响应返回数据。
注:并不是所有浏览器都会在POST中发送两次包,Firefox就只发送一次