get请求与post请求的区别

在了解get请求与post请求区别的前提,我们需要知道get请求与post请求传递参数的原理:

  • get请求:
    • 浏览器发送:参数是在url路经中进行拼接,是在请求行
    • 服务器接收:切割url,得到参数;
  • post请求
    • 浏览器发送:
      • 将传递的参数(数据)切割为一个一个的数据包(数据包的数量与带宽和数据大小有关);
      • 在发送的时候,并不是一起发过去的,而是以数据包为单位进行发送的;
      • 此时会发生丢包的现象(低概率)
      • 当所有数据包发送完毕,会发送一个标识,标识所有数据包发送完毕
    • 服务端接收:
      • 在接收时,利用 累加器思想 ;
      • 存在data事件,执行时机:每次接收一个数据包就会执行一次;
      • 存在end事件,执行时机:当所有数据包接收完毕,会执行一次;

由原理我们可以看出get与post请求的区别

  • [1]位置不同
    • get请求的参数是在请求行中;
    • post请求的参数是在请求体中;
  • [2]大小不同
    • get请求的参数,拼接在路经中,有大小限制,--一般在1M左右
    • post请求的参数,在请求体中,不存在大小限制
  • [3]速度(效率)不同
    • get请求的参数,请求速度快
    • post请求的参数,请求速度慢
  • [4]安全性不同
    • get请求的参数,不安全(拼接在路径中)
    • post请求的参数,安全(传输过程中为二进制)

使用场景

  • 安全性问题用post(eg:登录注册)
  • 参数具有文件的使用post
  • 其余一般优先使用get

面试题

[1]谈谈你对post的理解?什么场景下会用到post?为什么不用get?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
GET 和 POST 是 HTTP 协议中常用的两种请求方法,主要有以下几点区别: 1. 参数位置不同 GET 请求的参数是在 URL 中以查询字符串的形式出现的,例如:http://www.example.com/page?param1=value1&param2=value2。 POST 请求的参数是在请求体中以键值对的形式出现的,例如:param1=value1&param2=value2。 2. 数据大小限制不同 GET 请求由于参数是在 URL 中传递的,所以受到 URL 长度的限制,不同的浏览器和服务器对 URL 长度的限制也不同,一般不建议在 GET 请求中传递大量的数据。 POST 请求由于参数是在请求体中传递的,所以不受 URL 长度的限制,但是服务器和客户端对请求体大小也有限制,一般情况下 POST 请求可以传递更大的数据。 3. 安全性不同 GET 请求中参数是以明文形式出现在 URL 中的,如果传递的参数包含敏感信息,那么这些信息可能会被拦截或者泄露,因此 GET 请求不适合传递敏感信息。 POST 请求中参数是在请求体中传递的,相对于 GET 请求POST 请求更加安全,因为请求体中的参数不会被直接显示在 URL 中。 4. 缓存处理不同 GET 请求默认会被浏览器缓存,如果请求相同的 URL,浏览器会直接从缓存中获取数据,不会重新请求服务器,这样可以减少网络流量,提高网站性能。 POST 请求不能被浏览器缓存,每次请求都会重新向服务器请求数据。 总的来说,GET 请求适合传递少量的非敏感信息,POST 请求适合传递大量的数据或者敏感信息。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值