Content-Type 详解

Content-Type
Content-Type(MediaType),即是Internet Media Type,互联网媒体类型,也叫做MIME类型。在互联网中有成百上千中不同的数据类型,HTTP在传输数据对象时会为他们打上称为MIME的数据格式标签,用于区分数据类型。最初MIME是用于电子邮件系统的,后来HTTP也采用了这一方案。
在HTTP协议消息头中,使用Content-Type来表示请求和响应中的媒体类型信息。它用来告诉服务端如何处理请求的数据,以及告诉客户端(一般是浏览器)如何解析响应的数据,比如显示图片,解析并展示html等等。

request客户端 的Content-Type

请求的Content-Type必须设置正确,否正就会返回415错误。415 错误是 Unsupported media type,即不支持的媒体类型。

请求content-type的组成

格式 Content-Type: type/subtype;parameter;
例如 Content-Type: text/html;charset:utf-8;

主类型type

  • text------------文本类型
  • application-- 应用类型
  • *----------------所有类型

子类型subtype

  • html-----------html格式
  • xml -----------xml格式
  • json-----------json格式
  • *---------------所有格式

参数parameter
常用的是编码方式参数charset:utf-8

主类型是text

text/html : HTML格式
text/plain :纯文本格式      
text/xml :  XML格式(忽略xml头所指定编码格式而默认采用us-ascii编码)
image/png: png图片格式

主类型是application

application/xhtml+xml :XHTML格式
application/xml     : XML数据格式(根据xml头指定的编码格式来编码)
application/json    : JSON数据格式
application/octet-stream : 二进制流数据(如常见的文件下载)

建议:

  • 如果是一个restful接口(json格式),一般将Content-Type设置为application/json; charset=UTF-8;

  • 如果是文件上传,一般Content-Type设置为multipart/form-data

  • 如果普通表单提交,一般Content-Type设置为application/x-www-form-urlencoded

请求的Content-Type必须设置正确,否正就会返回415错误Unsupported media type

response服务端的响应Content-Type
在这里插入图片描述
常遇到下面的几种情况:

1、 服务端需要返回一段普通文本给客户端,Content-Type=“text/plain”
2 、服务端需要返回一段HTML代码给客户端 ,Content-Type=“text/html”
3 、服务端需要返回一段XML代码给客户端 ,Content-Type=“text/xml”
4 、服务端需要返回一段javascript代码给客户端,text/javascript
5 、服务端需要返回一段json串给客户端,application/Json

建议:

一般情况下不需要显示设置;

  • 如果是文件导出,Content-Type 设置为 multipart/form-data,并且添加一个Content-Disposition设置为attachment;fileName=文件.后缀。

注:Content-Disposition是Content-Type的扩展,告诉浏览器弹窗下载框,而不是直接在浏览器里展示文件。因为一般浏览器对于它能够处理的文件类型,如txt,pdf 等,它都是直接打开展示,而不是弹窗下载框。

jQuery请求中设置:

 $.ajax({
                type: 'post',
                url:'/xxx',
                //contentType:false,//不要去设置Content-Type请求头
                //processData: false,// 告诉jQuery不要去处理发送的数据
                //当设置为true的时候,jquery ajax 提交的时候不会序列化 data,而是直接使用data。
                contentType:'application/x-www-form-urlencoded',
                data:{
                    username:'admin',
                    password:'123123'
                },
                // dataType: "json", //返回格式为json
                success: function (req) {
            		//请求成功时处理
           		 	console.log(req);
         		 },
          			complete: function (data) {
            		//请求完成的处理
          		},
          			error: function (data) {
            		//请求出错处理
            		console.log(data);
          		},
          	  })  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

C+ 安口木

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值