HTTP中POST方法和GET方法的区别

混江龙づ霸主 提交于 2020-02-06 16:56:49

最近在深入学习http协议类,对http请求中 post方法和 get方法 的区别 做一下总结记录:

 

1、get 在浏览器回退时是无害的,而post会再次提交请求;

2、get 产生的URL地址可以被收藏,而post不可以;

3、get请求会被浏览器主动缓存,而post不会主动缓存,除非手动设置;

4、get请求参数会被完整的保留在浏览器 历史记录中,而post不会;

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

6、get请求只能进行URL编码,而post支持多种编码方式;

7、get请求的参数通过URL传递,而post 放在Request body中;

8、对参数的数据类型,get只接受ASCII字符,而post 没有限制;

9、get比post更不安全,因为get请求的参数直接显示在URL上, 明文的方式传递参数数据,所以不能用get方法传递敏感信息;

10、get是从服务器上获取数据,post是向服务器传送数据;

11、get方法传递的数据量较小,最大不超过2KB(因为受URL长度限制),post方法传递的数据量较大,一般不受限制;

12、get方法只会产生一个TCP数据包,浏览器会把Header和Data一并发送出去,服务器响应200(OK),并回传相应的数据。

    而post方法会产生两个TCP数据包,浏览器会先将Header发送出去,服务器响应100(Continue)后,浏览器再发送Data,

    服务器响应200(OK),并回传相应的数据。

 

       那么为什么post方式那么好,还会使用get方法呢?因为get方法虽然安全性低,但是效率更高,而post安全性高,效率低

      学习过程,简单记录,如有不恰当之处,欢迎指正!

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!