content-type几种常见类型区别

生活中,最使人疲惫的往往不是道路的遥远,而是心中的郁闷;最使人痛苦的往往不是生活的不幸,而是希望的破灭;最使人颓废的往往不是前途的坎坷,而是自信的丧失;最使人绝望的往往不是挫折的打击,而是心灵的死亡。所以我们要有自己的梦想,让梦想的星光指引着我们走出落漠,走出惆怅,带着我们走进自己的理想。

导读:本篇文章讲解 content-type几种常见类型区别,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

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的拼接方式

content-type几种常见类型区别

2.multipart/form-data

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

content-type几种常见类型区别

上传文件时

content-type几种常见类型区别

3.application/json

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

content-type几种常见类型区别

4.application/octet-stream

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

4.application/xml 和 text/xml

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

tips:

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/137375.html

(0)
飞熊的头像飞熊bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!