在 caddy 啟用 gzip
http caddy gzip -Caddy v2 ./etc/caddy/Caddyfile
encode gzip
Why
使用壓縮可以讓某些靜態檔案傳輸得更快。
What
- Content-Encoding
-
Content-Encoding 在
http
回應標頭中列出內容的編碼方式,及優先順序。讓接收者知道如何解碼。內容編碼必須以不丟失下壓縮內容。 - Accept-Encoding
-
Accept-Encoding 在
http
請求標頭指示可接受的內容編碼方式,及優先順序。服務器可使用其內容其一來編碼內容,並用Content-Encoding
告知接收者。
How
當瀏覽器或客戶端支援文件壓縮時,服務器可以根據瀏覽器送過來可接受的壓縮格式來壓縮文件,再將之送給瀏覽器。 前提是服務器有支援該壓縮格式。
例如,瀏覽器送出
// request headers accept-encoding: gzip, deflate, br
則服務器若支援 gzip
則回覆
// response headers content-encoding: gzip
而這一切都在瀏覽器背後默默的處理中,不需要使用者再做任何事。
在伺服器端,以 Caddy 為例。
修改設定檔
/etc/caddy/Caddyfile
{ root * /wwwdata/ file_server // 加上 encode gzip encode gzip }
之後重新啟動,便能啟用對 gzip
的支援。內定會壓縮下列文件類型
-
header Content-Type text/*
-
header Content-Type application/json*
-
header Content-Type application/javascript*
-
header Content-Type application/xhtml+xml*
-
header Content-Type application/atom+xml*
-
header Content-Type application/rss+xml*
-
header Content-Type image/svg+xml*
更多設定請參閱 Caddy encode。