Content-Type叫做MIME(mediaType)类型,使用Content-Type来表示请求和响应中的媒体类型信息。如果是请求头,它用来告诉服务端如何处理请求的数据,如果是响应头,它用来告诉客户端(一般是浏览器)如何解析响应的数据。下面我们来介绍下常用的几种类型!

1.application/x-www-form-urlencoded

请求参数格式key1=val1&key2=val2的方式进行拼接,并放到请求实体里面,如果是中文或特殊字符等会自动进行URL转码。一般用于表单提交

<body><div><form name="test" method="POST"><p>username: <input type="text" name="username" /></p><p>possword: <input type="text" name="possword" /></p><button class="btn">提交</form></div>
</body>
<script>$('.btn').click((e) => {e.preventDefault();$.ajax({url: 'http://192.168.26.70/cgp-rest/token/partner',type: 'POST',contentType: "application/x-www-urlencoded",data: {username: test.username.value,possword: test.possword.value},success: function (data) {console.log(data);}})});
</script>

contentType设置为 application/x-www-form-urlencoded,请求参数格式是key1=val1&key2=val2的拼接方式

2.multipart/form-data

与application/x-www-form-urlencoded不同,它会将表单的数据处理为一条消息,以标签为单元,用分隔符 boundary分开。既可以上传键值对,也可以上传文件。当上传的字段是文件时,会有Content-Type来表名文件类型,content-disposition用来说明字段的一些信息,最后以隔符 boundary–为结束标识。multipart/form-data支持文件上传的格式,一般需要上传文件的表单则用该类型

  1. 上传键值对
  2. 上传文件时

3.application/json

application/json 作为响应头比较常见。实际上,现在越来越多的人把它作为请求头,用来告诉服务端消息主体是序列化后的 JSON 字符串,其中一个好处就是JSON 格式支持比键值对复杂得多的结构化数据。由于 JSON 规范的流行,除了低版本 IE 之外的各大浏览器都原生支持JSON.stringify,服务端语言也都有处理 JSON 的函数,使用起来没有困难。

3.application/octet-stream

指的就是一些二进制文件类型。如application/pdf,指定了特定二进制文件的MIME类型。就像text文件类型若没有特定的子类型就使用 text/plain。二进制文件没有特定或已知的子类型,即使用 application/octet-stream,这是应用程序文件的默认值,一般很少直接使用 。

4.application/xml 和 text/xml

这里用的是xml格式的数据,我个人觉得 XML结构还是过于复杂,比较推荐用json格式数据。

tips:

  1. text/html, text/plain, text/css, text/javascript, image/jpeg, image/png, image/gif, 都是常见的页面资源类型。
  2. 客户端发送请求时的Content-Type设置如果设置的不准确会导致服务端解析不了,从而报错415
  3. 服务端响应的Content-Type最好也设置准确,乱设置某些情况下可能会有问题,比如导致文件无法下载,客户端把json数据当成文本使用
  4. 如果是一个restful接口(json格式),一般将Content-Type设置为application/json; charset=UTF-8
  5. 如果是文件上传,一般Content-Type设置为multipart/form-data
  6. 如果普通表单提交,一般Content-Type设置为application/x-www-form-urlencoded
  7. Accept为客户端希望接受的数据类型,Content-Type为(客户端或者服务端)发送的实体数据的数据类型,两者是有区别的,如果服务端返回的类型和客户端希望接受的数据类型不一致,从而报错406

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. 索引原理及几种索引类型区别

    在关系数据库中,索引是一种单独的.物理的对数据库表中的一列或多列的值进行排序的一种存储结构, 它是某个表中一列或若干列值的集合和相应的指向表中物理标识这些值的数据页的逻辑指针清单.索引的作用相当于图书 ...

  6. java 三种错误类型 区别_请列举至少三种在java语言中发生“严重错误”的情况...

    [简答题]自已编写一个自定义非整数异常类,来处理一个异常 [填空题]捕获异常时,可以把catch捕获的异常对象( ),使上层try-catch结构继续处理该异常事件;也可以把异常对象转换为其它异常对象 ...

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

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

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

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

  9. Sharepoint学习笔记—Site Definition系列-- 2、创建Content Type

    Sharepoint本身就是一个丰富的大容器,里面存储的所有信息我们可以称其为"内容(Content)",为了便于管理这些Conent,按照人类的正常逻辑就必然想到的是对此进行&q ...

最新文章

  1. 卷积神经网络原理图文详解
  2. 如何刷新JTable
  3. MySQL连接相关问题(查看及设置连接数)
  4. 新手攻略熔炉_我的世界攻略:生存模式新手攻略
  5. 关于索引的B tree B-tree B+tree B*tree 详解结构图
  6. 来认识下less css
  7. 中学计算机课小课题,【信息技术课题研究方案】 信息技术小课题研究题目大全_信息技术课题研究题目_信息技术课题研究_东城教研...
  8. Win键失效,Win+L不起作用了
  9. matlab将水印图像嵌入图像,改进的图像自嵌入水印算法及其MATLAB实现
  10. 云南大学软件测试,云南大学《软件测试》功能测试
  11. calloc和realloc
  12. 小程序如何加入企业微信群聊
  13. M131. Palindrome Partitioning(拆分回文子串)
  14. opencv 图像填充
  15. 老司机入职一周,给我们解读 Spring Boot 最流行的 16 条实践
  16. 区块链和公益怎么如何融合到一起
  17. 【转】微信小游戏开发总结
  18. HTML相对路径--上级目录及下级目录的写法
  19. 【统计学习】5分钟了解假设检验中的第一类错误和第二类错误
  20. ros接入IMU数据,打包发布topic

热门文章

  1. php 如何测试程序压力,php压力测试工具
  2. 深度度量学习-论文简评
  3. mysql 钩子程序_20200319 代码发布之任务发布钩子脚本
  4. ubuntu 输入法
  5. C#中自动发送邮件的实现
  6. 《论人的智商、情商、能力》(转)
  7. 开源算法介绍「AnimeGANv2」(人脸转化
  8. Ubuntu18.04+CUDA10.0+GTX1050Ti安装
  9. 移动端有哪些常见布局方式?
  10. 北航蔡维德:区块链 新计算基础设施 | CCF-GAIR 2017