Apache2 не отправляет «Content-Type» в заголовке - PullRequest
4 голосов
/ 11 марта 2009

У меня есть стандартная установка Apache2 в Ubuntu.

Я пытался заставить mod_deflate работать, но он заметил, что он не распаковывает мои файлы .js. При ближайшем рассмотрении выяснилось, что apache не отправляет Content-Type: ни для чего, кроме файлов .php . Для них это отправка «text / html», что странно, поскольку DefaultType «text / plain».

Понятия не имею, почему это ... mod_mime включен, и я не касался его конфигов.

Вот пример ответа от моего сервера для файла .css:

Date    Wed, 11 Mar 2009 04:48:12 GMT
Server  Apache/2.2.9 (Ubuntu)
Connection  Keep-Alive
Keep-Alive  timeout=15, max=96
Etag    "30478-4fb-464bec553a600"
Vary    Accept-Encoding

Ответы [ 3 ]

4 голосов
/ 11 марта 2009

Похоже, что это результат кеширования элемента с помощью eTags, и я упустил этот факт.

То, что происходило, заключалось в том, что эти элементы находились в кэше браузера и фактически не отправлялись с сервера, поэтому не было никакого Content-Type. Тем не менее, браузер получал заголовки с сервера во время поиска в кэше eTag ... это то, что я видел.

2 голосов
/ 11 марта 2009

Это происходит несколько раз, когда значение по умолчанию Content-Type комментируется в httpd.conf.

В Ubuntu 8.04, как я помню, установлено значение text / html.

0 голосов
/ 11 марта 2009

Это известная проблема. Какая версия Ubuntu это?

Я только что попробовал установить Ubuntu 8.10 и Debian 5, где я не коснулся конфигурации apache. Оба работают нормально:

HTTP/1.x 200 OK
Date: Wed, 11 Mar 2009 10:25:17 GMT
Server: Apache/2.2.9 (Ubuntu) PHP/5.2.6-2ubuntu4 with Suhosin-Patch mod_wsgi/2.3 Python/2.5.2
Last-Modified: Wed, 11 Mar 2009 10:19:41 GMT
Etag: "1544ae-12-464d534a6c940"
Accept-Ranges: bytes
Content-Length: 18
Keep-Alive: timeout=15, max=100
Connection: Keep-Alive
Content-Type: text/css
...