nginx访问静态文件不下载
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,然后发送给客户端。
4、如何让nginx访问静态时,不下载?
回到我们最初的问题,根据上面可以得到答案。就是在nginx的mime.type中添加对应文件的类型。类如:在浏览器上输入http://ip/a.data,访问nginx上的静态文件a.data,希望浏览器不下载该文件,而是在浏览器上直接展示。那么我们需要修改mime.type文件,在其中添加一行:
text/plain data;
参考:
https://blog.csdn.net/veritas_c/article/details/83897001
nginx访问静态文件不下载相关推荐
- nginx访问静态文件
1. 访问一个文件 server {listen 80;server_name file.one.cn;access_log /Users/xiaoming/Documents/nginxlog/fi ...
- nginx 访问 .php文件变成下载
原文链接: http://www.51ask.org/article/3 解决 nginx 浏览.php文件变成下载 Nginx 浏览.php文件变成下载:这是因为nginx没有设置好碰到php文件时 ...
- nginx访问php文件提示下载,解决nginx打开php文件总是显示下载框的问题
进入目录/etc/nginx/sites-available sudo vim default 把以下代码端前的#去掉 location ~ \.php$ { # fastcgi_spli ...
- Nginx缓存静态文件
nginx的一大功能就是完成静态资源的分离部署,减轻后端服务器的压力,如果给这些静态资源再加一级nginx的缓存,可以进一步提升访问效率. 第一步:添加nginx.conf的http级别的缓存配置 # ...
- 通过Nginx访问静态页面
通过Nginx访问静态页面 转载请标明出处^_^ 原文首发于:www.zhangruibin.com 本文出自于:RebornChang的博客 nginx的用途 处理静态文件,索引文件以及自动索引:打 ...
- nginx访问静态资源
nginx访问静态资源 打开nginx配置文件 1 打开 nginx.conf 文件 2 修改 nginx.conf 内容 只需修改成或者添加一个location,就可以访问 html路径下所有文件了 ...
- Mac上使用nginx访问本地文件夹报403的问题
Mac上使用nginx访问本地文件夹报403的问题 就是没有权限访问你配置的文件夹在 nginx.conf头行加入下面配置 user root wheel; 不过我的电脑在启动nginx访问的时候会发 ...
- Django从理论到实战(part24)--在模板中访问静态文件
学习笔记,仅供参考 参考自:Django打造大型企业官网–Huang Y: 本系列Blog以应用为主,理论基础部分我在后端专栏的Django系列博客已经写过了,如果有些需要补充的知识点,我会在这个系列 ...
- Springboot访问静态文件的问题(WebContent)
Springboot访问静态文件的问题 前言 1.创建WebContent并在Facets中配置后依旧无法访问任何资源 ①没有配置Working Directories ②配置好Working Dir ...
最新文章
- 从Ops到NoOps,阿里文娱智能运维的关键:自动化应用容量管理
- 两阶段提交(Two-Phase Commit)
- css3动画:animation
- 基于运维网V8环境安装ntop
- 使用sql server中的全文索引
- [你必须知道的异步编程]——异步编程模型(APM)
- 濮阳第二届创客机器人比赛_咸阳市举行第二届机器人大赛暨第一届创客大赛
- 云+X案例展 | 民生类:中国电信天翼云携手国家天文台打造“大国重器”
- emacs工程管理,cedet ede插件自动构建Make,Automake
- 中国著名的D版和破解软件下载网站(转)
- 时速云与炎黄盈动强强联手,打造企业 IT 变革新未来
- android如何打开数据库文件,在Android Studio中查看数据库文件的内容
- 浅析json_encode
- Android中自定义农历日历,Android实现自定义日历
- [CTO札记]新产品出现时,要‘耐得住寂寞,抗得住压力’
- 计算机考试多少个小时,考驾照科一电脑刷几个小时
- HTML实现3D图片旋转效果
- http请求 302解决方法
- 正睿OI补题(贪心)
- 购买学校计算机房加密狗的请示,2015关于扩建机房的请示.doc