众所周知,HTTP的请求报文是由请求行(METHOD URL HTTP-Version 回车)+ 请求头 + 空行 + 请求体构成,响应报文是由响应行 + 响应头 + 空行 + 响应体构成, 那么如何才能确定这个响应体是什么格式的内容呢,那就需要用到MIME-TYPE了。
在上传下载的时候也会用到MIME-TYPE, 上传的时候在input中定义accpet属性,即可规定可选择的文件类型。在HTTP请求中MIME-TYPE在headers里的属性叫content-type,请求报文中的content-type可以让服务器接收的时候可以确定请求体的类型,而做出不同的处理,响应报文中的content-type则是让浏览器或者请求程序(例如ajax)或者其他请求程序(例如python等)对响应体做出不同的处理。
MIME-TYPE是由类型+子类型组成的(中间加个左斜杠/),对于前端经常进行数据请求的常用类型有下面几种:
application/x-www-form-urlencoded 这种是用键值对的方式来传递数据的,常用于get方法,直接在URL后面带上参数即可(注意中文和特殊字符将被自动转码)
multipart/form-data 表单形式提交,常用于文件上传
application/json POST和PUT常用,用于提交JSON数据,好处是能保留数字型和布尔型不被转为字符型,也不会被转码,非常常用
IANA 是 MIME 媒体类型的官方注册机构,进入 https://www.iana.org/assignments/media-types/media-types.xhtml 可查看MIME-TYPE大全,并工具需求检索。
下面是常用的一些MIME-TYPE,可以用ctrl+f进行查找
| 扩展名 | 文档类型 | MIME 类型 |
|---|---|---|
| .aac | AAC 音频 | audio/aac |
| .abw | AbiWord 文档 | application/x-abiword |
| .apng | 动态可移植网络图形(APNG)图像 | image/apng |
| .arc | 归档文件(嵌入多个文件) | application/x-freearc |
| .avif | AVIF 图像 | image/avif |
| .avi | AVI:音频视频交织文件格式(Audio Video Interleave) | video/x-msvideo |
| .azw | Amazon Kindle 电子书格式 | application/vnd.amazon.ebook |
| .bin | 任何二进制数据类型 | application/octet-stream |
| .bmp | Windows OS/2 位图 | image/bmp |
| .bz | BZip 归档 | application/x-bzip |
| .bz2 | BZip2 归档 | application/x-bzip2 |
| .cda | CD 音频 | application/x-cdf |
| .csh | C-Shell 脚本 | application/x-csh |
| .css | 层叠样式表(CSS) | text/css |
| .csv | 逗号分隔值(CSV) | text/csv |
| .doc | Microsoft Word | application/msword |
| .docx | Microsoft Word(OpenXML) | application/vnd.openxmlformats-officedocument.wordprocessingml.document |
| .eot | MS 嵌入式 OpenType 字体 | application/vnd.ms-fontobject |
| .epub | 电子出版(EPUB) | application/epub+zip |
| .gz | GZip 压缩归档 | application/gzip |
| .gif | 图像互换格式(GIF) | image/gif |
| .htm, .html | 超文本标记语言(HTML) | text/html |
| .ico | 图标(Icon)格式 | image/vnd.microsoft.icon |
| .ics | iCalendar 格式 | text/calendar |
| .jar | Java 归档(JAR) | application/java-archive |
| .jpeg, .jpg | JPEG 图像 | image/jpeg |
| .js | JavaScript | text/javascript (规范:HTML 和 RFC 9239) |
| .json | JSON 格式 | application/json |
| .jsonld | JSON-LD 格式 | application/ld+json |
| .mid, .midi | 音乐数字接口(MIDI) | audio/midi、audio/x-midi |
| .mjs | JavaScript 模块 | text/javascript |
| .mp3 | MP3 音频 | audio/mpeg |
| .mp4 | MP4 视频 | video/mp4 |
| .mpeg | MPEG 视频 | video/mpeg |
| .mpkg | Apple 安装包 | application/vnd.apple.installer+xml |
| .odp | 开放文档演示稿文档 | application/vnd.oasis.opendocument.presentation |
| .ods | 开放文档表格文档 | application/vnd.oasis.opendocument.spreadsheet |
| .odt | 开放文档文本文档 | application/vnd.oasis.opendocument.text |
| .oga | OGG 音频 | audio/ogg |
| .ogv | OGG 视频 | video/ogg |
| .ogx | OGG | application/ogg |
| .opus | Opus 音频 | audio/opus |
| .otf | OpenType 字体 | font/otf |
| .png | 便携式网络图形 | image/png |
| Adobe 便携式文档格式(PDF) | application/pdf | |
| .php | 超文本预处理器(Personal Home Page) | application/x-httpd-php |
| .ppt | Microsoft PowerPoint | application/vnd.ms-powerpoint |
| .pptx | Microsoft PowerPoint(OpenXML) | application/vnd.openxmlformats-officedocument.presentationml.presentation |
| .rar | RAR 归档 | application/vnd.rar |
| .rtf | 富文本格式(RTF) | application/rtf |
| .sh | 伯恩 shell 脚本 | application/x-sh |
| .svg | 可缩放矢量图形(SVG) | image/svg+xml |
| .tar | 磁带归档(TAR) | application/x-tar |
| .tif, .tiff | 标签图像文件格式(TIFF) | image/tiff |
| .ts | MPEG 传输流 | video/mp2t |
| .ttf | TrueType 字体 | font/ttf |
| .txt | 文本(通常是 ASCII 或 ISO 8859-n) | text/plain |
| .vsd | Microsoft Visio | application/vnd.visio |
| .wav | 波形音频格式 | audio/wav |
| .weba | WEBM 音频 | audio/webm |
| .webm | WEBM 视频 | video/webm |
| .webp | WEBP 图像 | image/webp |
| .woff | Web 开放字体格式(WOFF) | font/woff |
| .woff2 | Web 开放字体格式(WOFF) | font/woff2 |
| .xhtml | XHTML | application/xhtml+xml |
| .xls | Microsoft Excel | application/vnd.ms-excel |
| .xlsx | Microsoft Excel(OpenXML) | application/vnd.openxmlformats-officedocument.spreadsheetml.sheet |
| .xml | XML | RFC 7303(section 4.1)推荐使用 application/xml,但有时仍会使用 text/xml。你可以将特定的 MIME 类型分配给具有 .xml 扩展名的文件,这取决于其内容的解释方式。例如,Atom 消息来源是 application/atom+xml,而 application/xml 是默认的有效值。 |
| .xul | XUL | application/vnd.mozilla.xul+xml |
| .zip | ZIP 归档 | application/zip |
| .3gp | 3GPP 音视频容器 | video/3gpp;如果不包含视频则为 audio/3gpp |
| .3g2 | 3GPP2 音视频容器 | video/3gpp2;如果不包含视频则为 audio/3gpp2 |
| .7z | 7-zip 归档 | application/x-7z-compressed |