The Issue of the Day Before

在 caddy 啟用 gzip

http caddy -

Caddy v2 ./etc/caddy/Caddyfile

    encode gzip

Why

使用壓縮可以讓某些靜態檔案傳輸得更快。

What

Content-Encoding

Content-Encodinghttp 回應標頭中列出內容的編碼方式,及優先順序。讓接收者知道如何解碼。內容編碼必須以不丟失下壓縮內容。

Accept-Encoding

Accept-Encodinghttp 請求標頭指示可接受的內容編碼方式,及優先順序。服務器可使用其內容其一來編碼內容,並用 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

閱讀在雲端