HTTP 请求中 Content-Type 常见取值

1. 表单数据类型

application/x-www-form-urlencoded

  • 用途:标准表单提交,键值对 URL 编码

  • 特点:数据会被编码为键值对,特殊字符会被转义

  • 示例

    POST /submit HTTP/1.1
    Host: example.com
    Content-Type: application/x-www-form-urlencoded

    name=John+Doe&age=25&email=john%40example.com

multipart/form-data

  • 用途:文件上传或复杂表单数据

  • 特点:使用 boundary 分隔符,支持二进制数据

  • 示例

    POST /upload HTTP/1.1
    Host: example.com
    Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW

    ----WebKitFormBoundary7MA4YWxkTrZu0gW
    Content-Disposition: form-data; name="username"

    John Doe
    ----WebKitFormBoundary7MA4YWxkTrZu0gW
    Content-Disposition: form-data; name="avatar"; filename="photo.jpg"
    Content-Type: image/jpeg

    [二进制图片数据]
    ----WebKitFormBoundary7MA4YWxkTrZu0gW--

text/plain

  • 用途:纯文本提交(较少使用)

  • 特点:数据不进行编码,直接传输

  • 示例

    POST /api/text HTTP/1.1
    Content-Type: text/plain

    This is plain text data

2. JSON 数据类型

application/json

  • 用途:RESTful API 最常用的数据格式

  • 特点:结构化数据,易于解析

  • 示例

    POST /api/users HTTP/1.1
    Host: api.example.com
    Content-Type: application/json

    {
    "name": "John Doe",
    "age": 25,
    "email": "john@example.com"
    }

application/json; charset=utf-8

  • 用途:JSON 数据并指定字符编码

  • 特点:明确指定字符集,避免编码问题

  • 示例

    POST /api/data HTTP/1.1
    Content-Type: application/json; charset=utf-8

    {"message": "你好,世界"}

3. XML 数据类型

application/xml

  • 用途:XML 格式数据传输

  • 特点:自描述性强,适合复杂结构

  • 示例

    POST /api/xml HTTP/1.1
    Content-Type: application/xml

    <?xml version="1.0" encoding="UTF-8"?> <user> <name>John Doe</name> <age>25</age> <email>john@example.com</email> </user>

text/xml

4. 文件和二进制数据类型

application/octet-stream

  • 用途:通用二进制数据传输

  • 特点:不指定具体格式,浏览器会提示下载

  • 示例

    POST /api/upload-file HTTP/1.1
    Content-Type: application/octet-stream

    [任意二进制数据]

image/jpeg

  • 用途:JPEG 图片上传

  • 示例

    POST /api/upload-image HTTP/1.1
    Content-Type: image/jpeg

    [JPEG 图片二进制数据]

image/png

  • 用途:PNG 图片上传

  • 示例

    POST /api/upload-image HTTP/1.1
    Content-Type: image/png

    [PNG 图片二进制数据]

application/pdf

  • 用途:PDF 文档传输

  • 示例

    POST /api/upload-pdf HTTP/1.1
    Content-Type: application/pdf

    [PDF 文档二进制数据]

5. Web 开发相关类型

text/html

  • 用途:HTML 内容提交(较少在请求中使用)

  • 示例

    POST /api/save-html HTTP/1.1
    Content-Type: text/html

    <!DOCTYPE html><html><body>

    Hello

    </body></html>

text/css

  • 用途:CSS 样式表提交

  • 示例

    POST /api/save-css HTTP/1.1
    Content-Type: text/css

    body { background: #f0f0f0; }

application/javascript

  • 用途:JavaScript 代码提交

  • 示例

    POST /api/execute-code HTTP/1.1
    Content-Type: application/javascript

    function hello() { return "Hello World"; }

6. 特殊场景类型

application/graphql

  • 用途:GraphQL 查询

  • 示例

    POST /graphql HTTP/1.1
    Content-Type: application/graphql

    {
    user(id: "123") {
    name
    email
    }
    }

application/x-www-form-urlencoded (GET 请求)

  • 用途:GET 请求的查询字符串

  • 示例

    GET /search?q=JavaScript&page=1 HTTP/1.1
    Host: example.com

选择建议:

  1. RESTful API :优先使用 application/json
  2. 表单提交 :使用 application/x-www-form-urlencoded
  3. 文件上传 :使用 multipart/form-data
  4. SOAP 服务 :使用 application/xmltext/xml
  5. GraphQL :使用 application/graphql
相关推荐
小同志003 小时前
网络原理-HTTP/HTTPS(四)--认识请求 “正⽂“ (body)
网络·网络协议·http
之歆3 小时前
Bash 循环与函数、Linux 进程管理
linux·chrome·bash
梁辰兴4 小时前
计算机网络基础:超文本传输协议 HTTP
网络协议·计算机网络·http·计算机·超文本传输协议·计算机网络基础·梁辰兴
网云工程师手记4 小时前
防火墙接口配置与运维实战(通用版)
运维·服务器·网络·网络协议·网络安全
小同志005 小时前
网络原理-HTTP/HTTPS(三)--认识请求“报头“(header)
网络·网络协议·http
wenzhangli75 小时前
OoderA2UI流式样式设计:SkillCenter重磅组件实现传统组件一键换新
人工智能·网络协议·开源
仙俊红7 小时前
我亲手抓到了自己的账号密码:一次完整的 HTTP 登录抓包实验
网络·网络协议·http
Hi_MrXiao7 小时前
电脑上安装使用多个版本的谷歌浏览器
前端·chrome
无级程序员7 小时前
k8s 1.35 + containerd v2.2 配置http私库并配置登录信息
http·容器·kubernetes