首页 > 其他分享 >常见传输数据格式Content-Type

常见传输数据格式Content-Type

时间:2023-03-03 23:00:09浏览次数:33  
标签:form text Content application type 数据格式 Type

在响应中,Content-Type 标头告诉客户端实际返回的内容的内容类型。浏览器会在某些情况下进行 MIME 查找,并不一定遵循此标题的值; 为了防止这种行为,可以将标题 X-Content-Type-Options 设置为 nosniff。

一、Content-Type的格式

Content-Type:type/subtype ;parameter

  • type:主类型,任意的字符串,如text,如果是*号代表所有;
  • subtype:子类型,任意的字符串,如html,如果是*号代表所有,用“/”与主类型隔开;
  • parameter:可选参数,如charset,boundary等。

示例

Content-Type: text/html;
Content-Type: application/json;charset:utf-8;
Content-Type: application/x-www-form-urlencoded;charset:utf-8;

1.media-type(type和subtype合并)

text/html,是指请求的media-type,他分为两个部分type和subtype,以“/”进行分割;也就是上面的type和subtype组合起来叫media-type

常见的type有,如text,如果是*号代表所有;

  • Text:用于标准化地表示的文本信息,文本消息可以是多种字符集和或者多种格式的;
  • Multipart:用于连接消息体的多个部分构成一个消息,这些部分可以是不同类型的数据;流的形式,常用于上传大型文件
  • Application:用于传输应用程序数据或者二进制数据;日常前后端传输数据常用。
  • Message:用于包装一个E-mail消息;
  • Image:用于传输静态图片数据;
  • Audio:用于传输音频或者音声数据;
  • Video:用于传输动态影像数据,可以是与音频编辑在一起的视频数据格式。

常见的subtype有,如果是*号代表所有,用“/”与主类型type隔开;

  • text/html
  • application/x-www-form-urlencoded
  • application/json
  • multipart/form-data
  • application/xml
  • text/plain
  • text/css
  • text/javascript

2.charset

是指定字符编码的标准

常见的有

  • "ISO-8859-1"
  • "UTF-8"
  • "GB2312“
  • ”ASCII“等;

3.boundary

多用于上传文件时使用,用于分割数据;后端也不用自己加,

当content-type为multipart/form-data类型时,需要用boundary指定分隔符。所以boundary后面跟的随机数,就是分隔符,后端就是通过解析到boundary的值作为分隔符来分隔参数的。但是无论前后端都不要手动设置分隔符,浏览器和postman会主动加的。




二、常见的Content-Type

1.application/x-www-form-urlencoded

content-type缺省时的默认格式,键值对并用&连接,键值对KV都进行了URL转码。

  • 如果是get请求时,会将参数拼接url后面,用?分割。且对长度有限制。安全性打折扣。url?a=value1&b=value2
  • 如果是post请求时,参数会被封装到请求body中

2.application/json

数据格式以json字符串的形式传递,使用越来越多的Content-Type,也是平时见得最多的。

{ "q": "", "p": false, "bs": "", "csor": "0", "err_no": 0, "errmsg": "", "g": [], "queryid": "0xa7fa6" }

axios大部分版本默认的请求头 application/json;charset=utf-8

3.multipart/form-data

multipart/form-data就诞生了,专门用于有效的传输文件。
multipart/form-data 既可以上传文件,也可以上传键值对,它采用了键值对的方式,所以可以上传多个文件。

使用multipart/form-data时,请求体参数可来自于new FormData()生成的实例,或enctype为multipart/form-data的表单数据。

标签:form,text,Content,application,type,数据格式,Type
From: https://www.cnblogs.com/wanglei1900/p/17177303.html

相关文章