get和post@TOC
get和post
在报文上的区别
无论是get还是post方法本质上都只是http协议中的两种请求方式而已,只是报文的格式不同。
不带参数的情况下,只是报文的第一行的格式不一样。
POST /uri HTTP/1.1 \r\n
GET /uri HTTP/1.1 \r\n
如果带参数,那么get的参数会在URL中,post的参数会在body中;
但是本质其实都是tdp链接,所以如果不按照上述的规范也可以,只要服务端支持即可。
post比get安全
这里的安全主要指的是post的请求参数在url中不可见。
但是从传输的角度看,都是不安全的,因为http在网络上都是明文传输。
如果要安全,选用https。
get方法的长度限制
http协议对于body和url的长度是没有限制的。
限制主要是由于浏览器和服务端的限制。
post方法会产生两个数据包?
实际用chrome测试的时候并没有发送两个数据包,所以应该是浏览器或者框架的要求。
参考
[1] https://blog.fundebug.com/2019/02/22/compare-http-method-get-and-post/