Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Why are major web sites using gzip?

I just searched about gzip and Deflate, and found out that Deflate is better.

  • GZip or Deflate for HTTP compression
  • Why use deflate instead of gzip for text files served by Apache?
  • Is there any performance hit involved in choosing gzip over deflate for http compression?
  • Deflate compression browser compatibility and advantages over GZIP

But when I checked the response headers of Google, Facebook and StackExchange, all of them were using GZIP. Why do they use gzip instead of Deflate?

like image 527
Sanghyun Lee Avatar asked Feb 07 '12 02:02

Sanghyun Lee


People also ask

Why is gzip so popular?

Gzip, the most popular compression method, is used by web servers and browsers to seamlessly compress and decompress content as it's transmitted over the Internet. Used mostly on code and text files, gzip can reduce the size of JavaScript, CSS, and HTML files by up to 90%.

What is a website gzip?

GZIP, short for GNU Zip, is the most popular lossless data compression method on the web. It allows you to reduce the size of your site's HTML pages, stylesheets, and scripts. Apart from being a data compression algorithm, GZIP is also a file extension (. gz) and a software used for file compression/decompression.

Do any browsers not support gzip?

All modern browsers can handle a gzip encoded response. In fact, if you look at their requests, they'll have a header that says something along the lines of Accept-Encoding: gzip which is their way of saying to the server that they can handle gzipped responses.

When should you not use gzip?

If you take a file that is 1300 bytes and compress it to 800 bytes, it's still transmitted in that same 1500 byte packet regardless, so you've gained nothing. That being the case, you should restrict the gzip compression to files with a size greater than a single packet, 1400 bytes (1.4KB) is a safe value.


1 Answers

It is apparently due to a misunderstanding resulting from the choice of the name "Deflate". The http standard clearly states that "deflate" really means the zlib format:

    The "zlib" format defined in RFC 1950 [31] in combination with     the "deflate" compression mechanism described in RFC 1951 [29]. 

However early Microsoft servers would incorrectly deliver raw deflate for "Deflate" (i.e. just RFC 1951 data without the zlib RFC 1950 wrapper). This caused problems, browsers had to try it both ways, and in the end it was simply more reliable to only use gzip.

The impact in bandwidth and execution time to use gzip instead of "Deflate" (zlib), is relatively small. So there we are and there it is likely to remain.

The difference is 12 more bytes for gzip and slightly more CPU time to calculate a CRC instead of an Adler-32.

like image 115
Mark Adler Avatar answered Oct 03 '22 18:10

Mark Adler