get和post的区别

误区:

1、get把参数写在url中,post通过请求体来传参

——get和post都是http协议定义的,使用哪个方式与应用层的数据如何传输是没有相互关系的    ——各种浏览器等软件的规定,变成了现在的现象

2、get没有post安全,因为get参数直接显示在url上

——安全相对而言,针对对象不同,本质都是tcp的链接

3、get请求在url中传送的参数是有长度限制的,但post是没有的

——对于url长度的限制是由两方面的原因形成   1)浏览器  2)服务器:服务器处理超长的url是一种负担,因此服务器处于安全、稳定的考虑,会给url长度加上限制,但这个限制是针对所有http请求的

 

真相:

GET和POST本质上就是TCP链接,并无差别,是由于HTTP的规定和浏览器/服务器的限制,导致他们在应用过程中体现出一些不同

1)get产生一个tcp数据包;post产生两个tcp数据包

2)对于get方式的请求,浏览器会把httpheader和data一并发送出去,服务器响应200(返回数据)

3)对于post请求,浏览器会先发送header,服务器响应100(continue),然后再发送data,服务器响应200(返回数据)

备注:网络条件好的情况下,时间差异可以忽略

 

参考:https://blog.csdn.net/happy_xiahuixiax/article/details/72859762

posted @ 2019-03-18 13:15  learning365  阅读(194)  评论(0编辑  收藏  举报