请求头中contentType参数的可选值数量及作用详解粗略的没有提到content-type,今天就来看看这个不起眼但非常有用的属性。要知道什么是Content-Type,首先要了解什么是InternetMediaType。InternetMediaType是Internet媒体类型,也称为MIME类型,它使用由两部分组成的标识符来确定一种类型。在HTTP协议的头部中,Content-Type用来表示具体请求中的媒体类型信息,也就是说Content-Type是HTTP协议中InternetMediaType的别称。Content-Type类型/子类型(;参数)的格式?上面的type是Content-Type的格式,可以拆解成三部分,分别是主类型(type)、子类型(subtype)和参数(parameter)。主要类型(type)主要类型可以是任何字符串,例如文本。如果是*,则表示所有类型。子类型(subtype)子类型可以是任何字符串,例如html。如果是*,则表示所有类型。parameter(参数)参数是可选的,可以在Content-Type中加入一些特殊的参数,比如Accept请求头的参数,常用的设置字符编码的charset参数。内容类型:文本/html;字符集:utf-8;前端传给后端的数据类型一般是文件或者纯数据。对于文件,我们使用表单上传。对于数据,我们以json格式上传。这是目前最体面的处理方式。当然,还有浏览器的原生形式,它使用XML作为数据传输的编码格式。按照上一段介绍的顺序,我们来介绍对应的参数1,multipart/form-data,它将表单的数据处理成一条消息,以标签为单位,用分隔符分隔。键值对和文件都可以上传。当然,因为可以追加多个键值,所以也可以上传多个文件。2.application/json以json格式传输数据,使用起来相当方便。3.application/x-www-form-urlencoded浏览器表单的原生形式。提交的数据按照key1=val1&key2=val2进行编码,key和val都经过url转码。大多数服务器端语言都对这种方式有很好的支持。4.与JSON相比,text/xml在数据交换方面并不好。它包含了太多的包装,并且与大多数编程语言的数据模型不匹配,这让大多数程序员感到惊讶。XML是面向数据的,JSON是面向对象和面向结构的,后者会给程序员更亲切的感觉。总结:选择不同的content-type属性值会让浏览器将数据转换成特定的格式发送给后台,同时将参数类型告知服务器。如果选择不当,后台的小伙伴是收不到数据的。
