发起请求关于-GET和POST思考

工作内容偏向数据交互,所以会 经常遇到GET和POST请求。用的时候只是根据API文档去写的,但是使用它们中的一个的原因是如何来的呢?

首先他们是什么呢?

GET和POST是什么?HTTP协议中的两种发送请求的方法

HTTP是什么?HTTP是基于TCP/IP的关于数据如何在万维网中如何通信的协议。

HTTP的底层是TCP/IP。所以GET和POST的底层也是TCP/IP,也就是说,GET/POST都是TCP链接。GET和POST能做的事情是一样一样的。所以,它俩到底有什么不一样呢?

从以下几个方面来思考下:

  • 怎么提交参数
  • 参数数据的安全性
  • 根据API文档说明,能支持哪个?
  • 参数的数据格式和长度

我们可以根据实践经历总结得到:GET请求中对应上面三个思考:

  1. GET请求在发起时,浏览器会把http header和data一并发送出去,服务器响应200(返回数据)。期间,GET产生一个TCP数据包。
  2. 第一:数据可以被放在params里面,可以在控制台看到。或者是直接拼接在请求地址中传参;第二:在一次请求完成后,这个过程中的数据参数将会保留在浏览器的缓存中。————从安全性来说,这样是很差的,因为参数直接暴露了。尤其是涉及到关键的用户信息时。所以一般不建议以GET去提交某些敏感信息。
  3. 我们发送get是希望从服务器上获取数据,这个层面意思是说,在与后端的协作中有个后端提供给前端的接口文档,这时候会有对每一个接口做必要性的说明。这里也包括接口请求方式,只需要根据文档要求来写axios或者是ajax的method参数的值,就可以了。
  4. 根据w3c的标准规范,GET请求它只能支持ASCII字符。当然鉴于数据若放在地址后面做拼接是需要规定它的最大长度的。一般来说提交的数据最大是2k;(原则上url 长度无限制,但大多数浏览器通常都会限制url 长度在2k(2048字节byte))

POST请求呢?

  1. 发起POST请求,浏览器先发送header,服务器响应100 continue,浏览器再发送data,服务器响应200 ok(返回数据)。也就是类似于一种有预告的请求。当让不是所有的浏览器都会在POST请求中发两个数据包,火狐就只有一个。
  2. 相对来说,它的数据安全性还有保障的。它的参数被放在请求体中*(POST放在Request body中)。在一次请求完成后,这个过程中的数据参数将会被销毁,不会保留在浏览器的缓存中。
  3. 一般来说,post请求需要向服务器传送数据。所以在对接提交表单数据的接口中是常用的。
  4. POST请求对于参数的长度以及类型没有限制。并且POST支持多种编码方式。

那么是不是GET请求真的是很少用?

不是的,它的某些优点——它的请求是可以加标签(markBook)的,因为GET请求的过程中参数被留在自己的地址中了,从收藏的标签中可以正常完成请求的过程,而POST的参数没有这个优势,所以不能加markBook(标签)。

总结:GET和POST本质上就是TCP链接,并无差别。但是由于HTTP的规定和浏览器/服务器的限制,导致他们在应用过程中体现出一些不同。

参考:(感谢这位作者)https://www.cnblogs.com/logsharing/p/8448446.html。

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值