3
  • Я заметил, что мой веб-браузер продолжал загружать изображения в формате PNG и TIFF, в то же время счастливо отображал JPG и GIF, когда я нажимал на ссылку на это изображение. Ex. http://somesite.com/image.<format>

  • При более внимательном рассмотрении заголовков HTTP-ответов я заметил, что причиной такого поведения является различие в заголовках Content-Disposition и Content-Type .

Кто-нибудь знает, почему к ним относятся по-разному?


PNG:

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

GIF:

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 ответ1

3

Веб-сервер, который обслуживает файлы, неправильно настроен для обслуживания этих типов изображений. Общий, "неизвестный" тип контента является application/octet-stream . Браузер использует заголовок Content-Type чтобы решить, как обрабатывать файл, и, поскольку он не имеет ничего для него, он просто загружает файл.

Большинство установок Apache имеют в своей конфигурации файл mime.types который обрабатывает расширение файла для сопоставления типов контента.

Сервер также устанавливает заголовок Content-Disposition на attachment что также заставит браузер загружать файл вместо того, чтобы отображать его встроенным.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .