content-type几种常见类型区别

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支持文件上传的格式,一般需要上传文件的表单则用该类型

在这里插入图片描述
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
  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值