get和post都是http中的请求方式,而http请求是基于tcp/ip协议的,所以get和post本质上都是tcp链接,但由于HTTP规范以及浏览器做出的限制,才导致了两者在用法上出现了差异
区别1:
GET请求的参数是拼接在url后面的
POST请求的数据是放在请求体中的
区别2:
GET请求传输的参数大小有限制,是浏览器自身对url长度做出的限制,2kb左右
POST请求传输的数据量通常不受限制
区别3:
GET产生一个tcp数据包;POST产生两tcp个数据包
对于get请求,浏览器会把header和body一并发送过去,服务器做出响应
对于post请求,浏览器会先发送header,服务器响应100continue,浏览器再发送body,服务器响应200
区别4:
post比get更安全,因为get请求的参数拼接在了url上面,post更加安全
区别5:
get请求的资源会被浏览器缓存,post不会
get请求的参数会保存在浏览器历史中,post的参数不会保存