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

    John Doe 25 john@example.com

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

    Hello

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
相关推荐
用户25301719962711 小时前
第6篇:从技术到产品 — Ghost Proxifier 的设计哲学
网络协议
用户25301719962711 小时前
第3篇:注入的艺术 — Ghost Proxifier 核心架构拆解
网络协议
王二端茶倒水2 天前
商业 WiFi 不是免费上网,而是门店数字化的入口
网络协议
霜落长河6 天前
抛弃TCP改用UDP,HTTP3怎么了?
http
程序员mine7 天前
HTTPS-TLS加密与证书完全指南(中)
网络协议·https·ssl
程序猿阿伟7 天前
《Chrome离线扩展安装的底层逻辑与场景落地指南》
服务器·网络·chrome
之歆7 天前
现代 HTTP 客户端深度解析:Fetch 与 Axios
chrome·网络协议·http
ziyitty7 天前
MiMoCode 配置 “Unrecognized key: mcpServers“ 问题解决方案
前端·chrome
酉鬼女又兒7 天前
零基础入门计算机网络运输层:端到端通信核心作用、端口号分类规则、复用分用工作机制及UDP与TCP协议全方位对比详解
网络·网络协议·tcp/ip·计算机网络·考研·udp·php
dog2507 天前
不要再继续优化 TCP
网络协议·tcp/ip·php