我发现我的网络浏览器一直在下载 PNG 和 TIFF 图像,而当我单击该图像的链接时,却愉快地显示 JPG 和 GIF。例如。
http://somesite.com/image.<format>
Content-Disposition
仔细检查 HTTP 响应标头后,我发现和标头之间的差异Content-Type
导致了这种行为。
有人知道为什么这些会被区别对待吗?
巴布亚新几内亚:
HTTP/1.1 200 OK
Date: Fri, 16 Jan 2015 01:33:05 GMT
Server: Apache/2.2.21 (CentOS)
Content-Disposition: attachment;filename*=UTF-8''PNG.png
Content-Type: application/octet-stream
JPG:
HTTP/1.1 200 OK
Date: Fri, 16 Jan 2015 01:34:43 GMT
Server: Apache/2.2.21 (CentOS)
Content-Disposition: inline;filename*=UTF-8''JPG.jpg
Content-Type: image/jpeg
动图:
HTTP/1.1 200 OK
Date: Fri, 16 Jan 2015 01:31:28 GMT
Server: Apache/2.2.21 (CentOS)
Content-Disposition: inline;filename="GIF.gif"
Content-Type: image/gif
答案1
提供这些文件的 Web 服务器配置不正确,无法提供这些图像类型。通用的“未知”内容类型是application/octet-stream
。浏览器使用Content-Type
标头来决定如何处理文件,由于没有任何东西可以处理它,它只会下载该文件。
大多数 Apache 安装mime.types
在其配置中都有一个文件,用于处理文件扩展名到内容类型的映射。
服务器还设置Content-Disposition
标头attachment
也会导致浏览器下载文件而不是以内联方式显示它。