一、是什么?

是Http的实体首部字段,用于说明请求或返回的消息主体是用何种方式编码,在request header和response header里都存在。

二、几个常用类型:

1、application/x-www-form-urlencoded

1)浏览器的原生form表单
2) 提交的数据按照 key1=val1&key2=val2 的方式进行编码,key和val都进行了URL转码

POST [http://www.example.com](http://www.example.com) HTTP/1.1
Content-Type: application/x-[www-form-urlencoded](http://www-form-urlencoded);charset=utf-8 title=test&sub%5B%5D=1&sub%5B%5D=2&sub%5B%5D=3 
2、multipart/form-data

常见的 POST 数据提交的方式。我们使用表单上传文件时,必须让 form 的 enctype 等于这个值。

<form action="/" method="post" enctype="multipart/form-data"> <input type="text" name="description" value="some text"> <input type="file" name="myFile"> <button type="submit">Submit</button> </form> 

请求头看起来像这样

POST /foo HTTP/1.1
Content-Length: 68137
Content-Type: multipart/form-data; boundary=---------------------------974767299852498929531610575---------------------------974767299852498929531610575 Content-Disposition: form-data; name="description" some text ---------------------------974767299852498929531610575 Content-Disposition: form-data; name="myFile"; filename="foo.txt" Content-Type: text/plain (content of the uploaded file foo.txt) ---------------------------974767299852498929531610575-- 

是不是不太容易看懂,我们来略微分析一下

首先生成了一个 boundary 用于分割不同的字段,为了避免与正文内容重复,boundary 很长很复杂。
然后 Content-Type 里指明了数据是以 multipart/form-data 来编码,本次请求的 boundary 是什么内容。
消息主体里按照字段个数又分为多个结构类似的部分,每部分都是以 --boundary 开始,紧接着是内容描述信息,然后是回车,最后是字段具体内容(文本或二进制)。
如果传输的是文件,还要包含文件名和文件类型信息。消息主体最后以 --boundary-- 标示结束。关于 multipart/form-data 的详细定义,请前往 rfc1867 查看。

3、application/json

消息主体是序列化后的 JSON 字符串,这个类型越来越多地被大家所使用

POST [http://www.example.com](http://www.example.com) HTTP/1.1 Content-Type: application/json;charset=utf-8 {"title":"test","sub":[1,2,3]} 

这种方案,可以方便的提交复杂的结构化数据,特别适合 RESTful 的接口。各大抓包工具如 Chrome 自带的开发者工具、Firebug、Fiddler,都会以树形结构展示 JSON 数据,非常友好。

4、text/xml

是一种使用 HTTP 作为传输协议,XML 作为编码方式的远程调用规范

POST [http://www.example.com](http://www.example.com) HTTP/1.1
Content-Type: text/xml
<!--?xml version="1.0"?-->
<methodcall> <methodname>examples.getStateName</methodname> <params> <param> <value><i4>41</i4></value> </params> </methodcall> 

参考链接:
Content-Type
四种常见的 POST 提交数据方式

作者:Wendy曹
链接:https://www.jianshu.com/p/ba40da728806
来源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

转载于:https://www.cnblogs.com/UUUz/p/11170736.html

【转】Content-type的几种常见类型相关推荐

  1. 采购订单管理的四种常见类型

    采购管理对于任何成功的企业都至关重要.如果你的企业没有统一的采购管理流程,那么你可能无法对你的采购进行解释,并可能犯下代价高昂的采购错误.采购订单或许是有效采购管理流程中最重要的部分.让我们来看看采购 ...

  2. AI芯片:几种常见类型的AI芯片

    引入   近些年来,深度学习网络不断兴起.数据运算量越来越大,对处理器并行处理能力要求越来越高.传统的通用处理器CPU受摩尔定律的影响,已经不能满足大规模的数据处理了.故而,专用AI处理器的设计再一次 ...

  3. ADC的几种常见类型

    ADC的几种常见类型 介绍 种类 1. 逐次逼近型 2. 积分型ADC 3. 并行比较A/D转换器 4. 压频变换型ADC 5. ∑-Δ型ADC 6.流水线型ADC reference 介绍 现在的软 ...

  4. 【项目篇-项目选题与类型】创赛项目来源、项目选题建议;四种常见类型项目各自内容的侧重点与区别

    目录 创赛项目来源 软件平台类 创新想法 命题类比赛项目 为自己的毕设/课设做准备 学长学姐既有专利/论文/毕设转化 老师/企业给题 商务创业类:建立商业模式.服务体系,提出解决方案,社会实践转化,谋 ...

  5. content-type几种常见类型区别

    Content-Type叫做MIME(mediaType)类型,使用Content-Type来表示请求和响应中的媒体类型信息.如果是请求头,它用来告诉服务端如何处理请求的数据,如果是响应头,它用来告诉 ...

  6. 简谈-网络爬虫的几种常见类型

    众所周知,网络爬虫(或称为网络爬虫.网络蜘蛛.机器人)是搜索引擎最上游的一个模块,是负责搜索引擎内容索引的第一关. 很多人为了提高自己网站的索引量,都是去网上随便找一些爬虫工具来使用.但是很多人不知道 ...

  7. 服务器被攻击的几种常见类型

    1.内部攻击 内部攻击是最难防范的.也是要挟等级最高的攻击.因为内部人士有特权信息,在合作妥当权限或发现相应缝隙时,很简单形成有影响力的事情.此种内部攻击的也许性,更大来自运维团队.假定运维团队有1/ ...

  8. restTemplate http请求报错:no suitable HttpMessageConverter found for response type and content type

    报错信息: org.springframework.web.client.UnknownContentTypeException: Could not extract response: no sui ...

  9. 四部门联合印发《常见类型移动互联网应用程序必要个人信息范围规定》

    为贯彻落实<中华人民共和国网络安全法>关于"网络运营者收集.使用个人信息,应当遵循合法.正当.必要的原则""网络运营者不得收集与其提供的服务无关的个人信息&q ...

  10. 阿里云存储OSS中设置上传文件content type

    阿里云存储OSS中设置上传文件ContentType 如果你使用浏览器上传文件,则浏览器会自动在header中设置正确地content type,然后对文件的访问会得到正确地回应. 如果采用编程的方式 ...

最新文章

  1. 深入理解PHP原理之变量作用域
  2. 非凡推崇_2015年值得推崇的25位编码者
  3. 《高效团队开发工具与方法》
  4. 机器学习验证集为什么不再有新意?
  5. Java设计模式学习总结(12)——结构型模式之外观模式
  6. ASP.NET超市便利店在线购物商城源码,针对周边配送系统
  7. Linux安装Tomcat完整步骤
  8. Mind+实例5——打地鼠游戏
  9. vscode文件名颜色含义与右侧字母含义
  10. python50图_菊安酱和菜菜的Python可视化50图
  11. 信息学奥赛一本通:题解目录 (〃‘▽‘〃)点个赞吧
  12. php7 yar扩展,宝塔面板安装yar扩展
  13. python爬歌词生成词云图_Python爬虫摇滚网易云音乐歌词生成词云图
  14. JavaScript开发——文件夹的上传和下载
  15. 51nod-1603 限高二叉排列树
  16. Web 开发学习笔记——关于互联网和互联网应用
  17. [程序设计]前端Web页面使用原生JavaScript实现校验身份证号码在算法层面是否合法
  18. Java环境变量设置-Java
  19. vue调用扫码枪扫描条形码,并删除上一次输入框的内容
  20. c语言 boid,从零开始的全栈工程师——html篇1.3

热门文章

  1. Entity Framework 6 执行Linq to Entities异常p__linq__1 : String truncation: max=0, len=2, value='测试'...
  2. 动图展示16个Sublime Text快捷键用法 ---------------物化的sublime
  3. 理解Fragment生命周期(一)
  4. 【AAAI2021】纠结于联合学习中的建模方法?快来看看图网络显式建模!
  5. 对话清华NLP实验室刘知远:NLP搞事情少不了知识库与图神经网络
  6. 文末资源 | 官宣:GitHub私有仓库免费啦!--说微软收购GitHub是坏事的你站出来!...
  7. dtreeviz 画树模型
  8. 征稿通知 | 2019亚洲语言处理国际大会(IALP2019)开始征稿
  9. leetcode—21.二叉树路径和相关题目leetcode总结
  10. seaborn—sns.heatmap绘制热力图