http 请求

新公司,新工作 前后端分离,最近改造老功能 ,和前段进行交流沟通,对http请求 有了新的感受

老接口采用(post)键值对的形式传参数:

后台接收方式:

    @RequestMapping("customizeChaProduct")
    @ResponseBody
    @Transactional
    public Map<String, Object> customizeChaProduct(HttpServletRequest request, HttpServletResponse response) 

     。。。。。

由于新需求,需要传值一个对象的数组,格式如下:

[{"tabName": "1","showOrNot": "Y"},{"tabName": "2","showOrNot": "Y"}]

前段采用的技术 vue.js  :传参数的形式有两种1、param,2、data 

由于 之前采用的的param 后台接收 键值对

新的数据的采用data 形式,导致后台无法接入 

我对Content-type 的理解

content-type(内容格式)

postman 中常用的格式如下 :

form-data、x-www-form-urlencoded、raw、binary

form-data

就是http请求中的multipart/form-data,它会将表单的数据处理为一条消息,以标签为单元,用分隔符分开。既可以上传键值对,也可以上传文件

x-www-form-urlencoded

  application/x-www-from-urlencoded,会将表单内的数据转换为键值对,比如,name=java&age = 23

raw

          可以上传任意格式的文本,可以上传text、json、xml、html等

binary

Content-Type:application/octet-stream,从字面意思得知,只可以上传二进制数据,

HTTP协议(RFC2616)采用了请求/响应模型。客户端向服务器发送一个请求,请求头包含请求的方法、URI、协议版本、以及包含请求修饰符、客户 信息和内容的类似于MIME的消息结构。服务器以一个状态行作为响应,相应的内容包括消息协议的版本,成功或者错误编码加上包含服务器信息、实体元信息以 及可能的实体内容。 

通常HTTP消息由一个起始行,一个或者多个头域,一个只是头域结束的空行和可选的消息体组成。HTTP的头域包括通用头,请求头,响应头和实体头四个部分。每个头域由一个域名,冒号(:)和域值三部分组成。域名是大小写无关的,域 值前可以添加任何数量的空格符,头域可以被扩展为多行,在每行开始处,使用至少一个空格或制表符。 

请求消息和响应消息都可以包含实体信息,实体信息一般由实体头域和实体组成。实体头域包含关于实体的原信息,实体头包括Allow、Content- Base、Content-Encoding、Content-Language、 Content-Length、Content-Location、Content-MD5、Content-Range、Content-Type、 Etag、Expires、Last-Modified、extension-header。 
Content-Type是返回消息中非常重要的内容,表示后面的文档属于什么MIME类型。Content-Type: [type]/[subtype]; parameter。例如最常见的就是text/html,它的意思是说返回的内容是文本类型,这个文本又是HTML格式的。原则上浏览器会根据Content-Type来决定如何显示返回的消息体内容。 

type有下面的形式 

Text:用于标准化地表示的文本信息,文本消息可以是多种字符集和或者多种格式的; 

Multipart:用于连接消息体的多个部分构成一个消息,这些部分可以是不同类型的数据; 

Application:用于传输应用程序数据或者二进制数据; 

Message:用于包装一个E-mail消息; 

Image:用于传输静态图片数据; 

Audio:用于传输音频或者音声数据; 

Video:用于传输动态影像数据,可以是与音频编辑在一起的视频数据格式。 

猜你喜欢

转载自my.oschina.net/u/198077/blog/1786854