nginx访问静态文件不下载,修改默认流下载

Strongding 2020-06-03

修改默认

http { 

include mime.types;

#default_type application/octet-stream

default_type    text/html


1、什么是MIME-TYPE?
MIME——Multipurpose Internet Mail Extension(多用途因特网邮件扩展)最初是为了满足电子邮件支持多字符集及附件而出现的。MIME Type 不是个人指定的,是经过 ietf 组织协商,以 RFC 的形式作为建议的标准发布在网上的,大多数的 Web 服务器和用户代理都会支持这个规范。

2、MIME与HTTP协议
除了支持电子邮件的SMTP协议以外,MIME还被其他协议或者程序广泛使用着,这其中就包括大名鼎鼎的HTTP协议。HTTP服务器在发送一份报文主体时,在HTTP报文头部插入解释自身数据类型的MIME头部信息(Content-Type)。
MIME-type和Content-Type的关系:
当web服务器收到静态的资源文件请求时,依据请求文件的后缀名在服务器的MIME配置文件中找到对应的MIME Type,再根据MIME Type设置HTTP Response的Content-Type,然后客户端如浏览器根据Content-Type的值处理文件。

3、MIME与Nginx
nginx.conf配置文件http指令块有如下默认指令

http {
include mime.types;
default_type application/octet-stream;
1)default_type
如果Web程序没设置,Nginx也没找到对应文件的扩展名的话,就使用默认的Type,这个在Nginx 里用 default_type定义: default_type application/octet-stream,这是应用程序文件类型的默认值。

2)application/octet-stream
是HTTP规范中Content-Type的一种,意思是 未知的应用程序文件 ,浏览器一般不会自动执行或询问执行。只能提交一个二进制,如果提交文件的话,只能提交一个文件,后台接收参数只能有一个,而且只能是流(或者字节数组)。对于Chrome浏览器,遇到这种类型的conten-type,就会下载该文件。

3)mime.type文件内容如下

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/svg+xml svg svgz;
image/tiff tif tiff;
image/vnd.wap.wbmp wbmp;
image/webp webp;
image/x-icon ico;
image/x-jng jng;
image/x-ms-bmp bmp;

application/font-woff woff;
application/java-archive jar war ear;
application/json json;
application/mac-binhex40 hqx;
...
这里形如text/html格式的字符串就是用来说明数据类型的,/前的是主类型,/之后的是该主类型下的子类型。详细的类型定义在RFC2046中。Nginx通过服务器端文件的后缀名,来查找mime.type文件,进而判断这个文件属于什么类型,再将该数据类型写入HTTP头部的Content-Type字段中,发送给客户端。

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

服务器上有enter_narrow.png这个文件,后缀名是png;
根据mime.types,这个文件的数据类型应该是image/png;
将Content-Type的值设置为image/png,然后发送给客户端。
————————————————
版权声明:本文为CSDN博主「赶路人儿」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/liuxiao723846/article/details/102469868

相关推荐