MIME是什么

查看到MIME 不太清楚是什么 所以搜索了个人看后比较能够理解的解释,稍作整理记录


百度百科:MIME类型就是设定某种扩展名的文件用一种应用程序来打开的方式类型,当该扩展名文件被访问的时候,浏览器会自动使用指定应用程序来打开。

照这句话的意思,我们有个jpg扩展名的图片文件,它的MIME类型也应该叫jpg。在访问这张图片时,浏览器自己不显示,用系统的相册应用程序来打开……你见过这种操作吗?

(如果MIME叫exe,难道还能不经同意直接在我们电脑上运行病毒不成)

下面是正经的科普时间。

文件扩展名是什么?

操作系统用来标注文件格式的一种机制,用一个点号(.)和主文件名分隔开。由于历史原因,多数扩展名是三个字母。

注意,这里说的是标注,而非定义,既然是标注,说明不是强制的。

比如你用photoshop可以打开一个psd图像文件。把这个文件扩展名改为txt,再拖到photoshop窗口里,还是一样能打开,说明内容完全没有变化,变化的只是双击时的默认打开方式。

而MIME又是什么?

它全名叫多用途互联网邮件扩展(Multipurpose Internet Mail Extensions),最初是为了将纯文本格式的电子邮件扩展到可以支持多种信息格式而定制的。后来被应用到多种协议里,包括我们常用的HTTP协议

MIME的常见形式是一个主类型加一个子类型,用斜线分隔。比如text/html、application/javascript、image/png等。

MIME类型除了描述一个资源是什么类型的,更重要的是描述一段数据是什么编码格式的。除了用;charset=encode来描述文本编码。也有诸如application/x-form-urlencoded这样的MIME类型描述请求数据的编码格式(表示用URL编码格式)。事实上MIME的前半段,如text/,application/,image/,video/这些,表示的是资源的主类型,而后半段,则是资源的编码

在访问网页时,MIME type帮助浏览器识别一个HTTP请求返回的是什么内容的数据,应该如何打开、如何显示。

看到了吧,两者有共同的用途:用来标注信息的格式。

但应用场景完全不同:一个是操作系统中标注文件的,一个是邮件和HTTP协议中用来标注网络数据的。

但为什么两者会发生混淆,以至于有人把错误的结论写进了百度百科呢?

这就是历史原因了。

当Web服务刚诞生时,所有的网页其实就是静态页面的展示,没有互动、没有动态内容,只能靠超链接跳来跳去。而这些页面、样式、图片保存在哪呢?最简单的方式就是把url地址直接映射到本地文件。

比如http://www.xxx.com/images/logo.jpg,实际就对应着服务器上的一个/xxxxxx/images/logo.jpg文件。在有人访问它时,返回的MIME type是image/jpeg。

所以会造成一种误解:一个网址就是一个文件,它们的扩展名和MIME type是一一对应的。

实际上呢?当然不是这样,那只是在最简情况下的一种特殊做法。实际上,随着Web技术的发展,通过服务器端动态脚本和各种开发语言,网址和本地文件的关系已经不再紧密。

一张图片的网址所返回的MIME type是固定的(比如image/jpeg),但它的本体对应的可能是服务器上的一个文件,也可能是缓存中的一段数据,还可能是数据库中的一个字段,甚至是程序代码动态生成的图像。

尤其是RESTful等风格的url流行开后,网址中的文件扩展名部分也不见了。主流的url都变成了http://www.xxx.com/users/zhangsan/followers/page/20/这种形式。早已看不到任何文件名的踪影,与本地文件彻底脱钩,没有任何关系了。

原文链接:https://www.zhihu.com/question/60495696/answer/204530120

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 关于MIME类型,一开始是在js高级编程中看到,误以为它是某种数据类型或者文件格式类型,后来看了博客才了解。 它的...
    LinC阅读 5,281评论 0 0
  • 真的很基础! 不懂得:9、11 大体思路 抓包绕过前端检测 修改MIME类型绕过服务器检测 对于黑名单 遍历后缀名...
    Arklight阅读 1,573评论 0 0
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,403评论 19 139
  • 文件上传 概念 客户端 选择发送的文件->服务器接收->网站程序判断->临时文件->移动到指定的路径 服务器 接收...
    初岄阅读 4,121评论 0 0
  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5? 答:HTML5是最新的HTML标准。 注意:讲述HT...
    kismetajun阅读 28,021评论 1 45