title: Apache is not sending 304 response (if mod_deflate and AddOutputFilterByType is enabled)
body: <p>I have added the following line in my Apache httpd.conf: -</p>
  
  <pre><code>AddOutputFilterByType DEFLATE text/html text/css application/javascript application/x-javascript application/json
  </code></pre>
  
  <p>I have a html file (test.html) with a script inclusion: -</p>
  
  <pre><code>&lt;script type="text/javascript" src="/test.js"&gt;&lt;/script&gt;
  </code></pre>
  
  <p>The problem is, every time I load test.html, test.js is also loaded with HTTP status: 200.</p>
  
  <p><em>The question is: Why conditional GET is not satisfied?</em></p>
  
  <p>If I comment out the "AddOutputFilterByType" line in httpd.conf, Apache sends 304.</p>
  
  <p>If I enable AddOutputFilterByType in httpd.conf, the request header is: -</p>
  
  <pre>
  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
  </pre>
  
  <p>And the response header is: -</p>
  
  <pre>
  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
  </pre>
  
  <p><strong>UPDATE</strong>: I have noticed, if I am disabling ETag, it works properly. I mean it sends 304.</p>
  
  <pre><code>FileETag None
  </code></pre>
  
  <p>But I really want to keep ETag as it is (I know that there is a inode disclosure issue).</p>