• Content-Type,内容类型,一般是指网页中存在的Content-Type,用于定义网络文件的类型和网页的编码,用来在程序间传送内容相关的编码信息,数据类型信息,前端以何种数据格式传递给后端。
  • Accept,代表发送端(客户端)希望接受的数据类型。
  • Http content-Type有很多种,点击查看,这里看集中常见的类型。

1.application/x-www-form-urlencoded

  • 最常见的请求格式,原生form表单请求结构,以键值对的形式传递默认会以这种方式;提交的数据按照 key1=val1&key2=val2 的方式进行编码,keyval 都进行了 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--

3.application/json

  • 现在以JSON格式作为请求头越来越主流。

    Accept:application/json, text/plain, */*
    Content-Type:application/json;charset=UTF-8
    Request payLoad
    {name: "m", password: "hkkk", email: "123"}

何凯
966 声望174 粉丝

Never too late to learn!