Apache не отправляет ответ 304 (если включены mod_deflate и AddOutputFilterByType)

Я добавил следующую строку в моем Apache httpd.conf: -

AddOutputFilterByType DEFLATE text/html text/css application/javascript application/x-javascript application/json

У меня есть HTML-файл (test.html) с включением скрипта: -

<script type="text/javascript" src="/test.js"></script>

Проблема в том, что каждый раз, когда я загружаю test.html, test.js также загружается со статусом HTTP: 200.

Вопрос в том, почему условный GET не выполняется?

Если я закомментирую строку «AddOutputFilterByType» в httpd.conf, Apache отправит 304.

Если я включу AddOutputFilterByType в httpd.conf, заголовок запроса будет:

Host: optimize
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 GTB5 (.NET CLR 3.5.30729) FirePHP/0.2.4
Accept: */*
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip, deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
Referer: http://optimize/
Cookie: PHPSESSID=nbq6h0eeahkshkcbc6ctu2j2b4
If-Modified-Since: Tue, 19 May 2009 07:06:46 GMT
If-None-Match: "2000000000717f-2c25a-46a3e8dcc2ad8"-gzip
Cache-Control: max-age=0

И заголовок ответа:

Date: Fri, 22 May 2009 07:03:40 GMT
Server: Apache/2.2.9 (Win32) PHP/5.2.6
Last-Modified: Tue, 19 May 2009 07:06:46 GMT
Etag: "2000000000717f-2c25a-46a3e8dcc2ad8"-gzip
Accept-Ranges: bytes
Vary: Accept-Encoding
Content-Encoding: gzip
Content-Length: 52583
Keep-Alive: timeout=5, max=98
Connection: Keep-Alive
Content-Type: application/javascript

ОБНОВИТЬЯ заметил, что если я отключаю ETag, он работает правильно. Я имею в виду, что отправляет 304.

FileETag None

Но я действительно хочу сохранить ETag как есть (я знаю, что есть проблема раскрытия инода).

Ответы на вопрос(4)

Ваш ответ на вопрос