GET 和 POST 两种基本请求方法的区别?

个人博客网:https://wushaopei.github.io/    (你想要这里多有)

GET   和 POST 是HTTP 请求的两种基本方法的区别有哪些呢?

从最直观的角度来看

GET 把参数包含在URL中, POST 通过 RequestBody 传递参数。

主观角度上看待 get 和 post的 区别:

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

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

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

GET 请求只能通过url编码,而POST 支持多种编码方式

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

GET 请求在URL中传送的参数是有限的,而POST是无限的

对于参数的类型,GET 请求只接受 ASCII字符,而 POST 则没有限制

GET 请求比 POST 请求更加不

安全,因为请求的参数是直接暴露在URL上,所以不能用来传递敏感信息。

从客观的角度来看待:

其实两者的区别是 : 没有区别!!

WHY?

这里要说到,GET 和 POST  是什么了?

它们都是HTTP协议的两种发送请求的方法。

而HTTP请求是基于TCP/IP 的关于数据如何在万维网中进行通信的协议。

HTTP 的底层是TCP/IP。所以GET 和 POST 的底层也是TCP/IP,也就意味着,GET / POST都是TCP 链接。 GET 可以做POST一样的操作。GET 请求可以有requestBody ,而POST也可以有 URL参数。

那么,既然它们两者都具有对方的特性,我们为什么还要对 GET 和 POST 进行区分呢?

其实,原因很简单,底层协议都基于 TCP ,但是,GET  请求和 POST 请求的请求规则是不同的,前者只发送一次数据包,而后者需要发送两次,发送一次,花费的时间成本地,效率高;而发送两次数据包,时间成本在网络性能优异的情况下,其实影响不大,而在网络环境恶劣的情况下,却能保证数据包的完整性。

具体的,来看一看 GET 和 POST 请求的过程:

GET请求的过程:

  1. 浏览器请求 TCP 链接(第一次握手)
  2. 服务器答应进行 TCP 链接(第二次握手)
  3. 浏览器确认,发送 GET 请求头和数据(第三次握手,这个报文比较小,所以 HTTP会在此时进行第一次数据发送)
  4. 服务器返回 200 ok 响应

POST 请求的过程:

  1.  浏览器请求TCP链接(第一次握手)
  2. 服务器答应进行 TCP 链接(第二次握手)
  3. 浏览器确认,并发送 POST 请求头(第三次握手,这个报文比较小,所以HTTP会在此时进行第一次数据发送)
  4. 服务器返回 100 continue响应
  5. 浏览器开始发送数据
  6. 服务器返回 200 OK 响应

由上初步估测: GET 的总耗是 POST 的 2/3左右

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值