sme*_*sme 2 compression gzip tar
假设服务器设置正确,现代浏览器能够在下载时自动解压缩 .gzip 文件。.tar.gz 文件也是如此吗?
例如,假设您有一个包含大量资源的 HTML5 游戏。将资产(游戏模型、声音等)压缩到一个 .tar 文件中是有意义的,然后(我假设)再将其压缩到一个 .gzip 文件中。客户端是否需要做任何特殊的事情来解压它们?或者是否有更好的方法来压缩服务器上的资产,使我的问题变得毫无意义?
大多数网络服务器可以透明地gzip将数据发送到您的浏览器以节省传输时间,但这gzip只是一种压缩算法。tar另一方面,是一种用于将文件一起批处理为单个存档的格式。
更长的答案是它是两个不同的 HTTP 标头之间的相互作用:Content-Encoding和Content-Type.
当您点击一个使用 的网页时gzip,您会收到一个Content-Typeoftext/html和一个Content-Encodingof gzip。浏览器知道如何处理text/html,因此它透明地解压缩响应并将其呈现在您的屏幕上。
当您下载一个.gz或tar 文件时,您会收到带有Content-Typeof application/x-gzip(或x-tar或x-tar-gz)的信息,这会提示浏览器将数据视为文件下载,而不是尝试自行处理任何事情。
没有诸如Content-Encodingof之类的东西tar,因为该标头仅用于宣传一种压缩类型- 因此将.tar.gz带有gzip编码的文件发送到浏览器将毫无意义且浪费。数据已经被压缩。