本文主要介绍常用的几种 MIME 类型。
1.application/x-www-form-urlencoded
最常见的请求格式,原生 form 表单请求结构,以键值对的形式传递默认会以这种方式;提交的数据按照 key1=val1&key2=val2 的方式进行编码,key 和 val 都进行了 URL 编码。大部分服务端语言都对这种方式有很好的支持
Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
Content-Type:application/x-www-form-urlencoded
Form Data
first_name=i&last_name=i
2.multipart/form-data
常见的 POST 数据提交的方式。这种方式一般用来上传文件,以二进制方式编码数据,各大服务端语言对它也有着良好的支持。一般会生成了一个 boundary 用于分割不同的字段,为了避免与正文内容重复,boundary 很长很复杂。然后 Content-Type 里指明了数据是以 mutipart/form-data 来编码,本次请求的 boundary 是什么内容。消息主体里按照字段个数又分为多个结构类似的部分,每部分都是以 –boundary 开始,紧接着内容描述信息,然后是回车,最后是字段具体内容(文本或二进制)。如果传输的是文件,还要包含文件名和文件类型信息。消息主体最后以 –boundary– 标示结束
Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW
------WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="key"
value
------WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="testKey"
testValue
------WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="imgFile"; filename="no-file"
Content-Type: application/octet-stream
<data in here>
------WebKitFormBoundary7MA4YWxkTrZu0gW--
ps:application/octet-stream 是二进制流文件,未知下载文件类型
3.application/json
现在以 JSON 格式作为请求头越来越主流。
Accept:application/json, text/plain, */*
Content-Type:application/json;charset=UTF-8
Request payLoad
{name: "m", password: "hkkk", email: "123"}