1. 表单数据类型
application/x-www-form-urlencoded
-
用途:标准表单提交,键值对 URL 编码
-
特点:数据会被编码为键值对,特殊字符会被转义
-
示例:
POST /submit HTTP/1.1
Host: example.com
Content-Type: application/x-www-form-urlencodedname=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/plainThis 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
<?xml version="1.0" encoding="UTF-8"?> <user> <name>John Doe</name> <age>25</age> <email>john@example.com</email> </user>
Content-Type: application/xml
text/xml
-
用途:XML 文本格式(语义上与 application/xml 类似)
-
示例:
POST /soap/endpoint HTTP/1.1
Content-Type: text/xml<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope">
soap:Body
<m:GetPrice xmlns:m="http://example.org/stock">
<m:ItemName>Apple</m:ItemName>
</m:GetPrice>
</soap:Body>
</soap:Envelope>
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
<!DOCTYPE html><html><body>
Content-Type: text/htmlHello
</body></html>
text/css
-
用途:CSS 样式表提交
-
示例:
POST /api/save-css HTTP/1.1
Content-Type: text/cssbody { background: #f0f0f0; }
application/javascript
-
用途:JavaScript 代码提交
-
示例:
POST /api/execute-code HTTP/1.1
Content-Type: application/javascriptfunction 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
选择建议:
- RESTful API :优先使用
application/json - 表单提交 :使用
application/x-www-form-urlencoded - 文件上传 :使用
multipart/form-data - SOAP 服务 :使用
application/xml或text/xml - GraphQL :使用
application/graphql