前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >HTTP GET 和 POST 的区别

HTTP GET 和 POST 的区别

作者头像
恋喵大鲤鱼
发布2020-11-03 11:11:11
1K0
发布2020-11-03 11:11:11
举报
文章被收录于专栏:C/C++基础C/C++基础

HTTP 协议是后台开发必须要了解的协议,因为在后台开发工作中,少不了使用 HTTP 协议进行交互,比如访问 HTTP 服务获取数据或者实现一个 HTTP 服务。当然,HTTP 协议是不仅仅是后台开发需要了解,只要是开发人员都必须要了解。

HTTP 定义了与服务器交互的不同方法,最基本的方法有4种,分别是 GET,POST,PUT,DELETE。URL 全称是资源描述符,我们可以这样认为:一个 URL 地址,它用于描述一个网络上的资源,而 HTTP 中的 GET,POST,PUT,DELETE 就对应着对这个资源的查,改,增,删 4 个操作。到这里,大家应该有个大概的了解了,GET 一般用于获取/查询资源信息,而 POST 一般用于更新资源信息。

在谈论 HTTP GET 和 POST 的区别时,我们不能脱离其使用分场景,就像我们在做阅读理解时要想了解某个句子的具体含义,不能脱离语境。下面就分场景说一下 GET 和 POST 的区别。

浏览器的 GET 和 POST 的区别: (1)作用不同。GET 用于获取资源,POST 用于更新资源; (2)携带数据的方式不同。GET 一般将数据已参数的形式放到 URL 中,虽然 HTTP 标准并未对 URL 长度做限制,但是浏览器在实现时,一般会对 URL 的长度做限制,所以携带的数据有限;POST 将数据放到 Body 中,无长度限制; (3)安全性不同。GET 比 POST 更不安全,因为参数直接暴露在 URL 上,所以不能用来传递敏感信息; (4)幂等性不同。GET 对访问的数据没有副作用,具有幂等性。POST 用于更新操作往往是有副作用的,不幂等。因为幂等性的差别,GET 产生的 URL 地址可以保存为书签,而 POST 不可以。GET 请求会被浏览器主动 cache,而 POST 不会,除非手动设置。

RPC 接口中的 GET 和 POST 的区别: 在后台 RPC 接口调用中,我们可以利用 HTTP 协议进行通信,此时 GET/POST 不光能用在前端和后端的交互中,还能用在后端各个子服务的调用中。当用HTTP实现接口发送请求时,就没有浏览器中那么多限制了,只要是符合 HTTP 格式的就可以发送。

所以该应用场景下,GET 与 POST 除了语义上区别,在作用上并无区别,GET 可以使用 body 协议数据用于更新远端资源,POST 也可以把数据放到 URL 参数中用于获取远端资源,这完全取决于被调接口的具体实现。


参考文献

[1] 知乎.GET 和 POST 到底有什么区别?

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-10-30 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 参考文献
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档