我听说像CSS和
JavaScript这样的静态内容可以用GZip格式更好地传递.
内容开发者网络(CDN)总是如此.
内容开发者网络(CDN)总是如此.
但是我不明白格式是如何工作的.首先,当我尝试通过命令行制作一个gzip压缩文件.文件扩展名为.gz.这与.css和.js不同.浏览器如何识别哪个文件被gzip压缩.
二,浏览器如何“解压缩”文件?我将index.html.gz拖到我的浏览器上.但没有人工作.
>这样的gzip如何在现实世界中工作?
>如果我想使用Gzipped格式提供CSS / JavaScript,我需要做什么.
解决方法
您正在谈论的gzipping对最终用户是不可见的,就此而言,对于您作为开发人员而言.它由您的Web服务器和客户端的Web浏览器负责.
对于IIS,您需要启用GZip ISAPI扩展(在此站点上查看操作方法),对于Apache,它需要mod_deflate.
当Web浏览器完成其请求,但在将其发送到广阔的世界之前,它将gzip内容并放入一个特殊的头,以便浏览器知道内容被压缩.
当Web浏览器收到响应时,它会解压缩数据并读取文件.这对最终用户完全透明.
您通常只想在文本文件上使用GZip.在图像上使用它没有意义,因为图像已经被重压缩.
当我在所有静态内容(CSS,Javascript等)上启用GZip时,我注意到从90Kb页面大小(加载时间大约1秒)到大约5Kb页面大小(加载时间,.4秒)的下降.
如果您使用Wireshark观看数据包并重新组装它们会发现什么,您可以请求/index.html,但是网络服务器会获取/index.html,将其GZip放入/index.html.gz并将其发送出去. Yhe网络浏览器知道这个并解压缩它以便它回到/index.html,所以当你转到View Source时你会看到/index.html,而不是/index.html.gz