(面试题)HTTP中get请求和post请求的区别?

  • get请求和post请求的区别

    get和post是HTTP请求的两种方式,但是他们的用法不同;

    1. 参数显隐式、长度、类型:get请求是将请求参数放到url中,以?来分割url,多个参数用&来连接,参数最长为2KB(协议并没有对get请求的参数长度做出限制,这是浏览器限制),请求参数的类型只能是ASSCII编码;

      post请求是将请求参数放在请求体中,长度没有限制,请求参数的类型没有限制;

    2. 安全性:get因为将参数放在url中,参数是明文传输,所以是不安全的;post将参数放在请求体中,是安全的;

    3. 用法:因为安全性,get用来获取数据,post用来提交数据;

    4. 缓存:get请求结果返回的数据会被浏览器缓存,而post不会,除非手动设置;(当使用get请求时,返回的数据会被缓存,当再次发送这条请求时,浏览器并不会真正发送这条请求,而是从缓存中读出来,这是浏览器的决策)

      有时候我们即使使用了get请求,也并不想从浏览器缓存中读取数据,这时可以在get请求参数中加入一个后端直接忽略的参数,常用的是时间戳,每次get请求都不同,这样浏览器就不会从缓存中读取数据了

    5. 使用get请求在刷新浏览器时不会有影响,而post请求刷新或回退会再次提交;

  • get请求是安全的,post请求不是安全的;

    有人会问:get请求和post请求的区别中不是说get是不安全的,post是安全的吗?请注意,那里指的是get请求和post请求分别用来传递参数时参数的安全性;而这里的安全不安全指的是get请求和post请求本身是否安全;因为get请求设计的初衷只是为了从服务端获取数据,不会对服务器造成威胁,本身是安全的,但如果非要用get来提交数据,虽然能提交,但实际上是错误用法,呈现的是不安全状态,是使用方式的问题,不是get请求的问题;

    post请求是不安全的,因为会将数据传递给服务器,会对服务器造成威胁;

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值