启用Gzip压缩

Avatar of Chris Coyier
Chris Coyier

压缩通过减小HTTP响应的大小来减少响应时间。Gzip是目前最流行和有效的压缩方法,通常可以将响应大小减少约70%。

2009年,90%的互联网流量通过支持Gzip的浏览器传输。如今

所有现代浏览器都支持并自动协商所有HTTP请求的GZIP压缩:我们的工作是确保服务器在客户端请求时正确配置为提供压缩的资源。

在基于Apache的服务器上,您可以通过`.htaccess`文件来实现。

# BEGIN GZIP
<ifmodule mod_deflate.c>
AddOutputFilterByType DEFLATE text/text text/html text/plain text/xml text/css application/x-javascript application/javascript
</ifmodule>
# END GZIP

这本质上是Gzip将应用于的一系列MIME类型。您可以随意更改此列表,以包含您提供的所有基于文本的资源。

HTML5 Boilerplate项目提供了所有流行服务器的服务器配置。这是其针对.htaccess的版本。

<IfModule mod_filter.c>
    AddOutputFilterByType DEFLATE "application/atom+xml" \
                                  "application/javascript" \
                                  "application/json" \
                                  "application/ld+json" \
                                  "application/manifest+json" \
                                  "application/rdf+xml" \
                                  "application/rss+xml" \
                                  "application/schema+json" \
                                  "application/vnd.geo+json" \
                                  "application/vnd.ms-fontobject" \
                                  "application/x-font-ttf" \
                                  "application/x-javascript" \
                                  "application/x-web-app-manifest+json" \
                                  "application/xhtml+xml" \
                                  "application/xml" \
                                  "font/eot" \
                                  "font/opentype" \
                                  "image/bmp" \
                                  "image/svg+xml" \
                                  "image/vnd.microsoft.icon" \
                                  "image/x-icon" \
                                  "text/cache-manifest" \
                                  "text/css" \
                                  "text/html" \
                                  "text/javascript" \
                                  "text/plain" \
                                  "text/vcard" \
                                  "text/vnd.rim.location.xloc" \
                                  "text/vtt" \
                                  "text/x-component" \
                                  "text/x-cross-domain-policy" \
                                  "text/xml"

</IfModule>