EDIT I have found that the problem is actually php minify. This was sending the deflated content instead of Apache. I'll find more on this.
According to High Performance Web Sites, if I enable mod_deflate in Apache 2.x, by adding the following line, it should send gzipped/delfated content: –
AddOutputFilterByType DEFLATE text/html text/css application/x-javascript
The book also says that gzip
is more effective than deflate
.
I have enabled in httpd.conf by adding the same line. But Apache sends Content-Encoding: deflate
.
I tested with CURL using: –
curl -i -H "Accept-Encoding: gzip" "http://192.168.1.33/s.js" >> e:\curl_log.txt
It returns 'gzipped' content. But when I send the command: –
curl -i -H "Accept-Encoding: gzip, deflate" "http://192.168.1.33/s.js" >> e:\curl_log.txt
It returns 'deflated' content.
So, if the browser supports both deflated and gzipped, Apache send deflated. How to tell Apache to prefer gzip over deflate?
FYI: –
- I could not find anything in:
http://httpd.apache.org/docs/2.0/mod/mod_deflate.html. - There is no occurrence of no-gzip in
the Apache conf. - Server: Apache/2.2.9 (Win32) PHP/5.2.6
- FF sends request header as: "Accept-Encoding: gzip, deflate"
Best Answer
As I see the cause was already found. To further on help getting out of possible confusions:
mod_deflate despite its name is currently only supporting gzip.
gzip is more "effective" because of the following
gzip and zlib are file/stream formats that by default wrap around deflate and amongst other things add a checksum which make them more secure and a little slower. The increase in size on the other hand should not be of any concern.
Also see HTTP_compression - Wikipedia