Post和Get是HTTP协议的两种请求方式,本质上都是TCP连接,并没有差异性。
我们通常说的差异性都是由于HTTP协议、浏览器、服务器的限制导致的。
1.通常Get的传参一般在url中,Post的传参在请求体中。
2.由于浏览器对url长度的限制,Get的传参长度有限制,Post传参无限制。
3.Get传参类型只能是ASCII字符,Post传参类型没有限制。
4.Get只能进行url编码,Post支持多种编码方式。
5.Get的参数直接暴露在url中,Get安全性低,Post安全性高。
6.Get会被浏览器主动缓存,Post不会被主动缓存。
7.Get请求会产生一个数据包,Post请求会产生两个数据包。
原生form表单:Content-Type:application/x-www-form-urlencoded
form-data表单:Content-Type:multipart/form-data
json:Content-Type:application/json
XML结构:Content-Type:text/xml
对于GET方式的请求,浏览器会把请求头header和数据data一起发送至服务端,服务端响应200(返回数据);
对于POST,浏览器先发送请求头header,服务器响应100,浏览器再发送数据data,服务器响应200(返回数据)。