HTTP协议中POST与GET的详细区别总结----------通俗易懂

GET与POST请求他们的区别主要有以下几点

(一)GET通过地址栏传输,PSOT通过报文传输;

(二)GET参数有长度限制(受限于URL长度),而PSOT无限制;

(三)GET传输是不安全的,POST是安全的;

(四)GET请求产生一个TCP数据包,这相当于GET他可以一次性就可以把货送到位;

           POST请求产生两个TCP数据包,这相当于POST他得要跑两趟才可以把货送到位;

详细分析


第一点分析:

GET是通过URL地址栏进行传输;

http//:localhost:8080/user/login/userName=bajiao?password=bajiao123

POST是通过报文的方式进行传输(以下是以Postman报文格式进行展示);

URL:http//:localhost:8080/user/login

Headers:{

Content-type:application/json

},

Body:{

“userName”:”bajiao”,

“password”:bajiao123

}

第二点分析:

       GET请求是有一定局限的限制的;

       POST的这样的数据呢,通常来说可以放在body,也就是请求体里面,他是没有数据长度的限制的;

1、Http get方法提交的数据大小长度并没有限制,Http协议规范没有对URL长度进行限制。目前说的get长度有限制,是特定的浏览器及服务器对它的限制。各种浏览器和服务器的最大处理能力如下:

        IE:对URL的最大限制为2083个字符,若超出这个数字,提交按钮没有任何反应。

        Firefox:对Firefox浏览器URL的长度限制为:65536个字符。

        Safari:URL最大长度限制为80000个字符。

        Opera:URL最大长度限制为190000个字符。

        Google(chrome):URL最大长度限制为8182个字符。

        Apache(Server):能接受的最大url长度为8192个字符(这个准确度待定???)

        Microsoft Internet Information Server(IIS):n能接受最大url的长度为16384个字符。

2、理论上讲,post是没有大小限制的。Http协议规范也没有进行大小限制,起限制作用的是服务器处理程序的处理能力。

        Tomcat下默认post长度为2M,可通过修改conf/server.xml中的“maxPostSize=0”来取消对post大小的限制。

第三点分析:

       GET是不安全的,因为在传输过程,数据被放在请求的URL中;

       POST是安全的,因为所有操作对用户来说都是不可见的;

       GET请求的安全性可能不如POST那么高,但是GET请求他的一个传输速度比POST要快;

第四点分析:

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

        而对于POST,浏览器先发送header,服务器响应100 continue,浏览器再发送data,服务器响应200 ok(返回数据);

       也就是说,GET只需要汽车跑一趟就把货送到了,而POST得跑两趟,第一趟,先去和服务器打个招呼“嗨,我等下要送一批货来,你们打开门迎接我”,然后再回头把货送过去;

        因为POST需要两步,时间上消耗的要多一点,看起来GET比POST更有效一点;

HTTP请求中POST与GET的区别拓展小知识:

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

2、GET产生的URL地址可以被Bookmark,而POST不可以;

3、GET请求会被浏览器主动cache,而POST不会,除非手动设置;

4、GET请求只能进行URL编码,而POST支持多种编码方式;

5、GET请求参数会被完整保留在浏览器历史记录里,而POST中的参数不会被保留;

6、GET请求在URL中传送的参数是有长度限制的,而POST么有;

7、对参数的数据类型,GET只接受ASCII字符,而POST没有限制;

8、GET比POST更不安全,因为参数直接暴露在URL上,所以不能用来传递敏感信息;

9、GET参数通过URL传递,POST放在Request body中;

       以上是我学习的笔记,希望能够给大家带来帮助,如有不足之处还希望各路大神批评指正。谢谢大家~~~~

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值