GET/POST接收或发送数据的问题

SpringCloud实战视频下载

在文章开始,先来回忆一下GET、POST这两种请求方式的区别。

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

0、GET请求,请求的数据会附加在URL之后,以?分割URL和传输数据,多个参数用&连接。URL的编码格式采用的是ASCII编码,而不是uniclde,即是说所有的非ASCII字符都要编码之后再传输。

POST请求:POST请求会把请求的数据放置在HTTP请求包的包体中。上面的item=bandsaw就是实际的传输数据。

因此,GET请求的数据会暴露在地址栏中,而POST请求则不会。

1、传输数据的大小

在HTTP规范中,没有对URL的长度和传输的数据大小进行限制。但是在实际开发过程中,对于GET,特定的浏览器和服务器对URL的长度有限制。因此,在使用GET请求时,传输数据会受到URL长度的限制。

对于POST,由于不是URL传值,理论上是不会受限制的,但是实际上各个服务器会规定对POST提交数据大小进行限制,Apache、IIS都有各自的配置。

2、安全性

POST的安全性比GET的高。这里的安全是指真正的安全,而不同于上面GET提到的安全方法中的安全,上面提到的安全仅仅是不修改服务器的数据。比如,在进行登录操作,通过GET请求,用户名和密码都会暴露再URL上,因为登录页面有可能被浏览器缓存以及其他人查看浏览器的历史记录的原因,此时的用户名和密码就很容易被他人拿到了。除此之外,GET请求提交的数据还可能会造成Cross-site request frogery攻击

3、HTTP中的GET,POST,SOAP协议都是在HTTP上运行的

以上内容摘自?哪?如有雷同,不关我事。

以下内容是我在开发中对遇到的问题做的总结,能力一般,水平有限,如有错误,敬请指出。

0. 发出POST请求,获取某接口中的数据。

需求简述:从指定的接口中获取到数据并存储,POST请求头的header中需要加接口发布方提供的串码,否则POST请求会被拦截,导致获取不到数据。

核心代码如下:一般在service层做处理

1. 发出POST请求,将数据发送至某接口

需求简述: 某模块发布出一个接口,规定了传数据的格式,我需要把数据库中的数据查出来,组合成为对方需求的格式并发出。

核心代码如下:一般在service层做处理,查询数据的过程不展示

2.由页面发起GET请求,之后POST数据至指定接口,接口方收到数据后返回响应信息,由service层做处理,再由controller返回响应信息至GET请求发起方。

需求简述: 页面中的button发起了GET请求,controller中调用相关的处理方法,将数据以POST的形式发送至某接口中,接口发布方收到数据之后,返回响应信息(其中包括对接收状态的标识),由返回信息判断是否成功接收数据,之后再返回响应信息至GET请求发起方,展示是否成功发送数据。

controller层发布接口,供页面发起GET请求用,返回值为String(也可为其他,视自身情况定)。

本文中还涉及到对JSON对象、JSON数组、Document对象、List集合等问题的处理,都属于基本操作,注意字段取值时的拼写问题即可,不做详述。

  • 发表于:
  • 原文链接:http://kuaibao.qq.com/s/20171209A00GO600?refer=cp_1026

同媒体快讯

相关快讯

  • 003 以太坊钱包开发-引入 web3.js

    2018-10-23
  • (下转A44版)

    2018-10-23
  • (上接A16版)

    2018-10-23
  • 重组说明会现场。本报实习记者 陈一良 摄

    2018-10-23
  • 热点直击

    2018-10-23
  • ·

    2018-10-23

扫码关注云+社区