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
相关推荐
F1FJJ21 小时前
只是想查个数据,不想装 phpMyAdmin
数据库·网络协议·容器·开源软件
F1FJJ1 天前
Shield CLI:MySQL 插件 vs phpMyAdmin:轻量 Web 数据库管理工具对比
前端·网络·数据库·网络协议·mysql·容器
-SOLO-1 天前
使用Cursor操控正在打开的Chrome
前端·chrome
bu_shuo1 天前
IP相关知识
网络·网络协议·tcp/ip
黄昏回响1 天前
计算机系统基础知识(九):软件篇之网络协议详解
网络·网络协议·面试·改行学it
zl_dfq1 天前
计算机网络 之 【http协议】(简易HTTP服务器实现逻辑)
服务器·计算机网络·http
serve the people1 天前
ACME 协议流程与AllinSSL 的关系(二)
网络协议·https·ssl
honor_zhang1 天前
Vue3使用@vueuse/core集成Websocket实战及携带身份信息的3种方式
websocket·网络协议·身份验证
zl_dfq1 天前
计算机网络 之 【http协议】(http的无状态性、Cookie与Session的简介)
网络协议·计算机网络·http
添砖java‘’1 天前
应用层协议HTTP
网络·网络协议·http