【Nginx】MIME与mime.types_mime nginx_晓鹤翔0226的博客-程序员宅基地

技术标签: nginx  

当你刚安装完Nginx,打开默认的配置文件nginx.conf时,你会看到http上下文中有这一行配置:

include mime.types;
有的小伙伴就有疑问了:mime.types是什么文件?在Nginx中又是什么作用呢? 下面我们就来看看,mime.types究竟是怎么回事。

一、MIME与电子邮件
说起MIME,我们首先要说说电子邮件。

早期的电子邮件只能支持ASCII字符集,而且没法添加附件。后来,人们意识到电子邮件要想走向世界,必须支持更多的字符集,同时,能够随着邮件发送附件也成为越来越迫切的需求。在不断的努力下,MIME——Multipurpose Internet Mail Extension(多用途因特网邮件扩展)于1992年诞生了。通过MIME,我们可以将不同类型的数据(文本、图片、视频)放到一条邮件中。比如,可以写一封既含有英文,又含有中文,再加上一个mp3音乐文件作为附件的邮件。这种含有多种类型数据的文件被称为多部分对象集合(Multipart messages)。这就解决了我们前面说的两个问题。

可以说,没有MIME,就没有今天多姿多彩的互联网。

二、MIME与HTTP协议
除了支持电子邮件的SMTP协议以外,MIME还被其他协议或者程序广泛使用着,这其中就包括大名鼎鼎的HTTP协议。HTTP服务器在发送一份报文主体时,在HTTP报文头部插入解释自身数据类型的MIME头部信息(Content-Type)。客户端接收到这部分有关数据类型的信息,就能调用相应的程序处理数据。有时候,这个程序是客户端(浏览器)内置的,比如打开一个GIF图片。有时候你需要先安装一个插件,比如第一次观看优酷的视频前你一般需要安装Flash插件。

三、MIME与Nginx
打开Nginx配置文件中的mime.types,我们能看到如下信息:

types {
text/html html htm shtml;
text/css css;
text/xml xml;
image/gif gif;
image/jpeg jpeg jpg;
application/javascript js;
application/atom+xml atom;
application/rss+xml rss;

text/mathml                           mml;
text/plain                            txt;
text/vnd.sun.j2me.app-descriptor      jad;
text/vnd.wap.wml                      wml;
text/x-component                      htc;

image/png                             png;
image/tiff                            tif tiff;
image/vnd.wap.wbmp                    wbmp;
image/x-icon                          ico;
image/x-jng                           jng;
image/x-ms-bmp                        bmp;
image/svg+xml                         svg svgz;
image/webp                            webp;

application/font-woff                 woff;
application/java-archive              jar war ear;
application/json                      json;
application/mac-binhex40              hqx;
application/msword                    doc;
application/pdf                       pdf;
application/postscript                ps eps ai;
application/rtf                       rtf;
application/vnd.apple.mpegurl         m3u8;
application/vnd.ms-excel              xls;
....以下省略....

这里形如text/html格式的字符串就是用来说明数据类型的,/前的是主类型,/之后的是该主类型下的子类型。详细的类型定义在RFC2046中。Nginx通过服务器端文件的后缀名来判断这个文件属于什么类型,再将该数据类型写入HTTP头部的Content-Type字段中,发送给客户端。

比如,当我们打开OSC的一个页面,看到一个PNG格式的图片的时候,Nginx是这样发送格式信息的:

服务器上有enter_narrow.png这个文件,后缀名是png;
根据mime.types,这个文件的数据类型应该是image/png;
将Content-Type的值设置为image/png,然后发送给客户端。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/jmjhx/article/details/99728841

智能推荐

大数据处理引擎Spark与Flink对比分析!_flink spark对比-程序员宅基地

大数据技术正飞速地发展着,催生出一代又一代快速便捷的大数据处理引擎,无论是Hadoop、Storm,还是后来的Spark、Flink。然而,毕竟没有哪一个框架可以完全支持所有的应用场景,也就说明不可能有任何一个框架可以完全取代另一个。今天,大圣众包威客平台(www.dashengzb.cn)将从几个项出发着重对比Spark与Flink这两个大数据处理引擎,探讨其两者的区别。  一、Spark与Fl..._flink spark对比

为什么对 SaaS 公司来说毛利率很重要_saas公司的产品毛利率-程序员宅基地

毛利率对于软件即服务(SaaS)公司而言是非常重要的指标。它使初创公司能够在快速增长时期为产品和销售方面的大型投资提供资金,并在增长放缓时获利。许多因素有助于公司保持较高的毛利率,包括定价策略和能力,为客户提供高投资回报率的产品,高效且可扩展的基础架构以及易于使用且几乎不需要卖方支持的产品。仅举几例。毛利率对公司在研发,销售和市场营销方面的投资能力有重大影响,这最终可能决定竞争市场中的赢家。这也是..._saas公司的产品毛利率

AtCoder Beginner Contest 192 ---- B(暴力)-程序员宅基地

B - uNrEaDaBlE sTrInGEditorial/Time Limit: 2 sec / Memory Limit: 1024 MBScore :200200pointsProblem StatementWe call a stringhard-to-readwhen its odd-positioned (11-st,33-rd,55-th, ... from the beginning) characters are all lowercase Eng...

Android DrawerLayout 高仿QQ5.2双向侧滑菜单-程序员宅基地

转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/41531475,本文出自:【张鸿洋的博客】1、概述之前写了一个Android 高仿 QQ5.0 侧滑菜单效果 自定义控件来袭 ,恰逢QQ5.2又加了一个右侧菜单,刚好看了下DrawerLayout,一方面官方的东西,我都比较感兴趣;另一方面,这玩意用起来的确方便,于

jdk1.8配置-程序员宅基地

一、下载 JDK是免费的,可以直接到ORACLE官网下载最新版本,官网地址:https://www.oracle.com/index.html 进入官网,选择Java SE此处选择Jdk8进行安装在这里要先接受协议,不然无法下载 ,然后根据自己具体的操作系统选择相应的版本,点击即可下载 。二、安装JDK下载完成后,双击可执行文件,以此处为例双击jdk-8u1...

竞价被恶意点击怎么办?该怎么屏蔽?_百度竞价有效屏蔽方法-程序员宅基地

做过百度竞价的人应该都知道恶意点击,因为竞价是按点击收费的,所以就有一些同行,故意的去点击我们的网站,这样我们扣费很快,还得不到转化。那我们该怎么避免这些恶意点击呢?如何发现恶意点击?我们可以通过点击人的IP、关键词和访客识别码进行判断,在竞价账户后台统计里就可以查看到。1. IP判断一般情况下,竞价所带来的用户大多数都是陌生人,如果同一个IP多次出现以下情况,那我们就可以判断为恶意点击,而进行屏蔽。2. 关键词判断用户在产生转化行为前,都会进行搜集相..._百度竞价有效屏蔽方法

随便推点

Linux 内核开发-笔记_lost wake-up problem 是什么-程序员宅基地

操作系统课程作业要求,针对linux 2.6的内核(kernel)进行开发,详细的要求和材料可以参照课程连接:CS3 OPERATING SYSTEMS, PRACTICAL EXERCISEPHASE 1 PHASE 2 主要为如何在DICE机上使用VB和linux内核排程器(scheduler)的背景知识阅读, PHASE 3 是正式的开发,课程评分也只参考这一环节,而这一环节_lost wake-up problem 是什么

《战胜matlab必做练习50题》 练习三_matlab实验50题题目和答案-程序员宅基地

练习三题目以及答案1.创建3×4魔方阵(magic matrix)和相应的随机矩阵(random matrix),将两个矩阵拼接起来。然后键取任意两个列向量。 >>a=magic(3)(魔方矩阵只有一个参数,通过增加0元素)a = 8 1 6 3 5 7 4 9 2>> a(3,4)=0..._matlab实验50题题目和答案

综合开源框架之RxJava/RxAndroid-程序员宅基地

* 一种帮助做异步的框架. 类似于 AsyncTask. 但其灵活性和扩展性远远强于前者. * 主页: https://github.com/ReactiveX/RxJava* 中文资料: * https://github.com/lzyzsd/Awesome-RxJava * https://www.zhihu.com/question/35511144* 用途: * 异步操作 *...

软件测试mvc,WebMvcTest和MockBean测试Controller-程序员宅基地

@WebMvcTest注解简介Spring框架提供了@WebMvcTest这一注解来配置Controller的上下文环境,以帮助实现对Controller层的测试。从中可以看出,只实例化Controller。默认实例化所有的Controller,也可以指定只实例化某一到多个Controller。会实例化一个MockMvc的bean,用于模拟收发http请求和响应。默认搜索@SpringBootCo..._webmvctest

谷歌这是要全面退出中国!-程序员宅基地

最近google.com.hk也打不开了 ,ping下服务器 IP地址:74.125.203.199美国 结果服务器在美国谷歌不能上 只好用百度 不过谷歌的检索结果确实比百度准确性高很多不过居然发现有些网站频繁出现js错误,查看了下,原来它们引用了类似jshttp://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery....

Android 自定义横向滑动菜单的实现-程序员宅基地

Android 自定义横向滑动菜单的实现

推荐文章

热门文章

相关标签