HTTP 内容类型对照表
常见 HTTP Content-Type(媒体类型)含义与示例,覆盖 JSON、HTML、表单、图片、音视频与文件下载,并说明 charset 与 multipart boundary 用法。
| Content-Type | 含义 | 示例 |
|---|---|---|
| application/json | JSON 结构化数据 | Content-Type: application/json; charset=utf-8 |
| application/xml | XML 数据 | application/xml; charset=utf-8 |
| text/html | HTML 文档 | text/html; charset=utf-8 |
| text/plain | 纯文本 | text/plain; charset=utf-8 |
| application/x-www-form-urlencoded | HTML 表单默认编码 | application/x-www-form-urlencoded |
| multipart/form-data | 文件上传表单 | multipart/form-data; boundary=----WebKitFormBoundaryABC |
| application/octet-stream | 未知二进制流(触发下载) | application/octet-stream |
| image/png | PNG 图片 | image/png |
| image/jpeg | JPEG 图片 | image/jpeg |
| image/svg+xml | SVG 矢量图 | image/svg+xml |
| audio/mpeg | MP3 音频 | audio/mpeg |
| video/mp4 | MP4 视频 | video/mp4 |
| application/pdf | PDF 文档 | application/pdf |
| application/zip | ZIP 压缩包 | application/zip |
| font/woff2 | WOFF2 字体 | font/woff2 |
| application/javascript | JavaScript 脚本 | application/javascript; charset=utf-8 |
| application/ld+json | 结构化数据(JSON-LD) | application/ld+json |
| application/gzip | Gzip 压缩数据 | application/gzip |
常见问题
Content-Type 的 charset 不写会怎样?
服务端若省略 charset,浏览器会按自身默认编码猜测(常是 ISO-8859-1 或随 Locale),中文等 UTF-8 文本极易出现乱码。文本类类型强烈建议显式写 charset=utf-8。二进制类型(image/*、application/octet-stream)不需要 charset。
multipart/form-data 的 boundary 是什么?
boundary 是分隔表单各字段的分隔符,配合两个连字符前缀(如 --boundary)切分 parts。它由客户端随机生成,无需手写;服务端按 Boundary 解析各字段与文件。
application/json 和 text/json 用哪个?
标准与事实实践是 application/json(IANA 注册、被所有库识别)。text/json 非标准、部分旧系统或防火墙可能误判,不建议使用。
为什么下载接口常返回 application/octet-stream?
octet-stream 表示「未知二进制」,浏览器见到它通常不会尝试预览,而是直接触发下载(配合 Content-Disposition: attachment)。适合导出文件、安装包等场景。