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
相关推荐
TechWayfarer3 小时前
知乎/微博的IP属地显示为什么偶尔错误?用IP归属地查询平台自检工具3步验证
网络·python·网络协议·tcp/ip·网络安全
孙同学_9 小时前
【项目篇】高并发服务器 - HTTP服务器组件拆解,从Util到HttpServer
运维·服务器·http
SilentSamsara9 小时前
HTTP/1.1 到 HTTP/3:每代协议解决了什么问题
网络·网络协议·tcp/ip·http·https
Flash.kkl10 小时前
传输层UDP、TCP
网络协议·tcp/ip·udp
zmj32032412 小时前
TCP/IP协议和以太网关系
网络·网络协议·tcp/ip
chao18984414 小时前
Socket-TCP 简易端口开放检测工具
网络·网络协议·tcp/ip
不会写DN14 小时前
TCP 长连接服务:登录注册认证体系实战指南
服务器·网络·网络协议·tcp/ip·计算机网络·面试
一只小鱼儿吖14 小时前
基于OpenClaw的代理IP池自动化监控方案
网络协议·tcp/ip·自动化
蕤葳-15 小时前
理性分析:如何利用考证作为抓手,构建系统化知识体系与职业规划?
人工智能·网络协议·https
通信小呆呆16 小时前
各具神通——Vivado中不同系列的IP核差异详解
网络协议·tcp/ip·fpga开发