一、

首先,我们要了解浏览器是如何处理内容的。在浏览器中显示的内容有 HTML、有 XML、有 GIF、还有 Flash ……那么,浏览器是如何区分它们,决定什么内容用什么形式来显示呢?答案是 MIME Type,也就是该资源的媒体类型。

媒体类型通常是通过 HTTP 协议,由 Web 服务器告知浏览器的,更准确地说,是通过 Content-Type 来表示的,例如:

Content-Type: text/HTML

表示内容是 text/HTML 类型,也就是超文本文件。为什么是“text/HTML”而不是“HTML/text”或者别的什么?MIME Type 不是个人指定的,是经过 ietf 组织协商,以 RFC 的形式作为建议的标准发布在网上的,大多数的 Web 服务器和用户代理都会支持这个规范 (顺便说一句,Email 附件的类型也是通过 MIME Type 指定的)。

通常只有一些在互联网上获得广泛应用的格式才会获得一个 MIME Type,如果是某个客户端自己定义的格式,一般只能以 application/x- 开头。

XHTML 正是一个获得广泛应用的格式,因此,在 RFC 3236 中,说明了 XHTML 格式文件的 MIME Type 应该是 application/xHTML+XML。

当然,处理本地的文件,在没有人告诉浏览器某个文件的 MIME Type 的情况下,浏览器也会做一些默认的处理,这可能和你在操作系统中给文件配置的 MIME Type 有关。比如在 Windows 下,打开注册表的“HKEY_LOCAL_MACHINESOFTWAREClassesMIMEDatabaseContent Type”主键,你可以看到所有 MIME Type 的配置信息。

二、

在把输出结果传送到浏览器上的时候,浏览器必须启动适当的应用程序来处理这个输出文档。这可以通过多种类型MIME(多功能网际邮件扩充协议)来完成。在HTTP中,MIME类型被定义在Content-Type header中。

例如,架设你要传送一个Microsoft Excel文件到客户端。那么这时的MIME类型就是“application/vnd.ms-excel”。在大多数实际情况中,这个文件然后将传送给Execl来处理(假设我们设定Execl为处理特殊MIME类型的应用程序)。在ASP中,设定MIME类型的方法是通过Response对象的ContentType属性。

多媒体文件格式MIME

最早的HTTP协议中,并没有附加的数据类型信息,所有传送的数据都被客户程序解释为超文本标记语言HTML 文档,而为了支持多媒体数据类型,HTTP协议中就使用了附加在文档之前的MIME数据类型信息来标识数据类型。

MIME意为多目Internet邮件扩展,它设计的最初目的是为了在发送电子邮件时附加多媒体数据,让邮件客户程序能根据其类型进行处理。然而当它被HTTP协议支持之后,它的意义就更为显著了。它使得HTTP传输的不仅是普通的文本,而变得丰富多彩。

每个MIME类型由两部分组成,前面是数据的大类别,例如声音audio、图象image等,后面定义具体的种类。

常见的MIME类型

超文本标记语言文本 .html,.html text/html
普通文本 .txt text/plain
RTF文本 .rtf application/rtf
GIF图形 .gif image/gif
JPEG图形 .ipeg,.jpg image/jpeg
au声音文件 .au audio/basic
MIDI音乐文件 mid,.midi audio/midi,audio/x-midi
RealAudio音乐文件 .ra, .ram audio/x-pn-realaudio
MPEG文件 .mpg,.mpeg video/mpeg
AVI文件 .avi video/x-msvideo
GZIP文件 .gz application/x-gzip
TAR文件 .tar application/x-tar

Internet中有一个专门组织IANA来确认标准的MIME类型,但Internet发展的太快,很多应用程序等不及IANA来确认他们使用的MIME类型为标准类型。因此他们使用在类别中以x-开头的方法标识这个类别还没有成为标准,例如:x-gzip,x-tar等。事实上这些类型运用的很广泛,已经成为了事实标准。只要客户机和服务器共同承认这个MIME类型,即使它是不标准的类型也没有关系,客户程序就能根据MIME类型,采用具体的处理手段来处理数据。而Web服务器和浏览器(包括操作系统)中,缺省都设置了标准的和常见的MIME类型,只有对于不常见的 MIME类型,才需要同时设置服务器和客户浏览器,以进行识别。

由于MIME类型与文档的后缀相关,因此服务器使用文档的后缀来区分不同文件的MIME类型,服务器中必须定义文档后缀和MIME类型之间的对应关系。而客户程序从服务器上接收数据的时候,它只是从服务器接受数据流,并不了解文档的名字,因此服务器必须使用附加信息来告诉客户程序数据的MIME类型。服务器在发送真正的数据之前,就要先发送标志数据的MIME类型的信息,这个信息使用Content-type关键字进行定义,例如对于HTML文档,服务器将首先发送以下两行MIME标识信息,这个标识并不是真正的数据文件的一部分。

Content-type: text/html

注意,第二行为一个空行,这是必须的,使用这个空行的目的是将MIME信息与真正的数据内容分隔开。

MIME (Multipurpose Internet Mail Extensions) 是描述消息内容类型的因特网标准。
MIME 消息能包含文本、图像、音频、视频以及其他应用程序专用的数据。
官方的 MIME 信息是由 Internet Engineering Task Force (IETF) 在下面的文档中提供的:
RFC-822 Standard for ARPA Internet text messages

RFC-2045 MIME Part 1: Format of Internet Message Bodies

RFC-2046 MIME Part 2: Media Types

RFC-2047 MIME Part 3: Header Extensions for Non-ASCII Text

RFC-2048 MIME Part 4: Registration Procedures

RFC-2049 MIME Part 5: Conformance Criteria and Examples

不同的应用程序支持不同的 MIME 类型。

什么是 MIME Type?相关推荐

  1. Failed to load module script: The server responded with a non-JavaScript MIME type of “text/plain“.

    flask 使用es6语法中 type='module' 报错 报错如下: Failed to load module script: The server responded with a non- ...

  2. 【网络基础】Mime Type

    要点: http中是由Content-Type来传递MIME Type 只有一些在互联网上获得广泛应用的格式才会获得一个 MIME Type,如果是某个客户端自己定义的格式,一般只能以 applica ...

  3. go文件服务器mimetype,网络:什么是 MIME TYPE?

    教程 MIME 简介 MIME, Mutipurpose Internet Mail Extensions,多用途 Internet 邮箱扩展.MIME 是描述消息内容类型的 internet 标准. ...

  4. Resource interpreted as Stylesheet but transferred with MIME type application/x-css

    用tornado做了一个简单的页面.结果页面中的css被加载了,但是没有效果.用谷歌浏览器调试,说是Resource interpreted as Stylesheet but transferred ...

  5. 在vue项目npm run build后,index.html中引入css和js 报MIME type问题

    问题: 1.在vue项目中,build打包后,index页面打开会报错, MIME type ('text/html') ;报错内容:because its MIME type ('text/html ...

  6. 使用SpringBoot框架和SpringSecurity框架整合出现because its MIME type ('text/html') is not executable

    前端页面出现: Refused to execute script from 'http://localhost:8080/login' because its MIME type ('text/ht ...

  7. solr异常--Expected mime type application/octet-stream but got text/html.

    一.错误信息 Exception in thread "main" org.apache.solr.client.solrj.impl.HttpSolrServer$RemoteS ...

  8. MIME type类型

    MIME type的缩写为(Multipurpose Internet Mail Extensions)代表互联网媒体类型(Internet media type),MIME使用一个简单的字符串组成, ...

  9. Resource interpreted as Stylesheet but transferred with MIME type text/html: “**.jsp“,主要因为拦截器将所有资源拦截

    1. 问题描述 网页内容正常加载,但是没有样式,而且样式路径是正确的,F12打开控制台看到提示"Resource interpreted as Stylesheet but transfer ...

  10. Resource interpreted as Script but transferred with MIME type text/plain:

    我用script做ajax跨域,请求返回的是个文本字符串,chrome提示: Resource interpreted as Script but transferred with MIME type ...

最新文章

  1. Java中Map类型数据使用LinkedHashMap保留数据的插入顺序
  2. prometheus连续查询_Grafana + Prometheus快速搭建监控平台
  3. java 多个timer_java – Timer正在创建多个计时器实例
  4. python必备基础代码-机器学习算法基础(使用Python代码)
  5. 快速学习、快速决策、快速改变;突破自我
  6. MacOS六个常用的终端命令
  7. html画圣诞树—动态效果展示【炫酷合集 免费获取源码】
  8. wps怎么图片透明_wps中图片怎么样调透明度_word设置图片背景透明的图文教程-爱纯净...
  9. Windows重新分区,解决C盘无法扩展卷
  10. Redis - 听说 Dragonfly 宣称比我快 25 倍
  11. Windows 10正式版的历史版本
  12. linux分析gre中断问题,linux – 无法删除GRE隧道
  13. git上传代码和下载代码
  14. 吕文哲:为什么我说EOS完爆以太坊,理由全在这里了
  15. Access数据库到Mysql数据库实时更新
  16. Vue使用插槽vm.$slots实现一个导航栏结构
  17. Excel怎样提取相同内容对应的多个数据 按条件提数值
  18. 帆软报表如何调整软件字体?字体太小看不清怎么办?
  19. 无锡合全药业有限公司新药制剂开发服务及制剂生产项目中消防应急照明和疏散指示系统的应用
  20. mysql er 图_数据库ER图基础概念整理

热门文章

  1. PPT里对指定三角形的三条边作垂直平分线的VBA代码
  2. 使用腾讯JS-SDK实现汽车沿轨迹行驶
  3. js 实现经典阶乘函数的计算
  4. relativelayout中心对齐_Android中关于相对布局RelativeLayout的技巧汇总
  5. 安卓自定义View-类似操场跑道
  6. 跟杨春娟学Spring笔记:表达式装配
  7. 打造多链生态,促进Web3的应用
  8. 从Java到ObjC语言的桥梁:谷歌J2ObjC 0.7版本亮相
  9. HTML用画布实现刮刮卡,利用HTML5的画布Canvas实现刮刮卡效果_javascript技巧
  10. 魔兽 星际 红警 完全对比