POST与GET的区别

POST与GET的区别

说到GET和POST,就不得不提HTTP协议,因为浏览器和服务器的交互是通过HTTP协议执行的,而GET和POST也是HTTP协议中的两种方法

HTTP的工作方式是客户端与服务器之间的请求-应答协议。

HTTP 底层是 TCP/IP,所以 GET 和 POST 的底层也是 TCP/IP。

在这里插入图片描述
HTTP协议中定义了浏览器和服务器进行交互的不同方法,基本方法有4种,分别是GET,POST,PUT,DELETE。这四种方法可以理解为,对服务器资源的查,改,增,删

GET:从服务器上获取数据,也就是所谓的查仅仅是获取服务器资源,不进行修改

POST:向服务器提交数据,这就涉及到了数据的更新,也就是更改服务器的数据

PUT:PUT的英文含义是放置,也就是向服务器新添加数据,就是所谓的增

DELETE:从字面意思也能看出,这种方式就是删除服务器数据的过程。

其中GET与POST是常用的,也是最容易被问到的。

GET与POST区别:

【注意】HTTP没有要求,如果Method 是POST,数据就要放在BODY中。也没有要求 Method 是GET,数据就一定放在 URL 中而不能放在 BODY中

区别一:

  • GET 参数是通过 URL 传递
  • POST 放在 request body中

下面用生动形象的例子来说明 GET 和 POST 之间的区别。

在万维网的世界中,TCP就像是汽车,我们用TCP 来运输数据,它很可靠,从来不会发生丢件少见的现象。但是,如果路跑的全部是看起来一模一样的汽车,那么送急件的汽车可能被前面的汽车堵在了路上,导致急件不能运输到目的地。为了避免这种情况发生,交通规则 HTTP 诞生。HTTP 给汽车分类了,设定了几个不同的服务级别,有 GET 、POST、PUT、DELETE等。

  • HTTP规定,当执行 GET 请求的时候,要给汽车贴上 GET 标签,而且要求把传送的数据放在车顶上(URL中)(统一资源定位符(URL,英语Uniform Resource Locator的缩写)也被称为网页地址,)。
  • 当执行POST请求的时候,要给汽车上贴上POST标签,并把货物放在车厢里

=============================================

区别二:

但是我们在运输过程中,是对运输量有限制的(参数的大小)

在万维网的世界中,还有另一个角色:运输公司。不同的浏览器(发起http请求)和服务器(接收http请求)就是不同的运输公司。理论上,你可以在车顶上无限的放货物(url中无限加入参数)。但是运输公司可不傻,装货和卸货都会花费很大的成本,(大多数)浏览器通常会限制URL长度为 2K 个字节,(大多数)服务器最多处理 64K 大小的url。超过的部分,不会处理

  • 因为URL的长度限制,GET方式传输的数据大小有所限制,传送的数据量不超过2KB。
  • POST方式传送的数据量比较大,一般被默认为没有限制,但是根据IIS的配置,传输量也是不同的。

==============================================

区别三:

GET 产生一个 TCP 数据包;POST 产生两个 TCP 数据包

  • 对于 GET 方式的请求,浏览器会把 http header 和 data 一并发送过去,服务器响应 200(返回数据)
  • 对于 POST 方式的请求,浏览器会先发送 header,服务器响应 100(continue),浏览器再发送data,服务器响应ok(返回数据)

===============================================

区别四:

  • get 比post 更不安全,因为参数直接暴露在 URL 中,所以不能用来传递敏感信息(因为传输的数据会显示在请求的URL中)。
  • POST方式传输的数据安全性较高,因为数据传输不是明显显示的。

小总结:

POST和GET方式的安全性是相对的另外也要看是从哪个角度来看的。从数据传输过程方面来看,POST方式是更加安全的,但是从对服务器数据的操作来看,POST方式的安全性又是比较低的。即使是传输过程用POST来执行,安全性也是相对的,如果了解HTTP协议漏洞,通过拦截发送的数据包,同样可以修改交互数据,所以这里的安全不是绝对的

感谢并参考:
https://blog.csdn.net/xiaojie_570/article/details/87296715

https://blog.csdn.net/wswit/article/details/50776060?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.nonecase

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值