HTTP协议中,GET请求和POST请求的区别

前言

Get请求和Post请求,作为一个程序员,可能是再熟悉不过的东西了,每当有人问起你他们的区别的时候,你可能都会会心一笑,然后巴拉巴拉说出下列这些区别:
Get请求的数据会附在url之后,以?分割url传输数,参数以&连接,Post则把提交的数据放置在http包的包体中。
Get一般用于查询/获取资源信息,Post一般用于更新资源信息。
Get请求在回退是时是无害的,Post会再次提交请求。
Get请求只能进行url编码,Post支持多种编码。
Get请求在url传送的参数长度是有限制的,不同浏览器长度限制不同,而Post没有。
Get请求的参数被完整保存在浏览器历史记录里,是不安全的,而Post的参数则不会。

很显然,这些回答很正确,但是却不是别人想要的答案,那么get和post真正的区别是什么?

Get请求和Post请求真正的区别

Get请求和Post请求都是http协议中两种发送请求的方式,他们底层都是TCP/IP,那他们区别在哪里呢?
http定义了好几种与服务器交互的方式,最基本的有:get、post、put、delete,对应着对这个资源的查、改、增、删操作。而http给每种方式定义了不同的规范,比如get请求就是要把数据放在url中方便记录,最终达到劳务分配,各尽所责的效果。
那么这个规范就真正约束到了这些请求嘛,实际不然,真正约束他们的是TCP。
在万维网中,存在无数的浏览器,浏览器负责发送http请求,服务器负责接受http请求,如果你的get请求在url中增加无限参数,服务器接收端负担就很大,为应付这种情况,浏览器就规定get请求长度不超过多少多少,不让你乱搞,但是你说我get请求也可以在包体里面偷偷摸摸藏参数呀,服务器爸爸告诉你,不好意思,这种方式我不认可,接收不到你传递的参数。所以由于http的规定和浏览器、服务器限制使这两种请求在应用上出现了不同差异。

Get请求和Post请求性能差异

Get请求每次产生一个TCP数据包,而Post请求产生两个,意味着什么,那就是Get速度更快,Post速度更慢。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值