# Modern tömörítés

> A teszt azt nézi, hogy a nyitóoldal Brotli (br) vagy Zstandard (zstd) tömörítéssel érkezik-e; gzip vagy tömörítetlen válasz esetén ezt kell bekapcsolni.

A szöveges fájlok (HTML, CSS, JavaScript, JSON, SVG) jól tömöríthetők, ezért a szerver a hálózaton kisebb csomagot küldhet, a böngésző pedig kicsomagolja. A tömörítést a `Content-Encoding` válaszfejléc jelzi. A régi, ismert módszer a gzip; a Brotli (`br`, RFC 7932) és a Zstandard (`zstd`, RFC 8878) modernebb, a böngészők a `Accept-Encoding` kérésfejlécben jelzik, melyiket értik.

## Hogyan mérjük

A riport a nyitóoldalt olyan kéréssel kéri le, amelyben a `Accept-Encoding: br, zstd, gzip` szerepel, és a válasz `Content-Encoding` fejlécét nézi.

- **Megfelelő:** a fejléc értéke `br` vagy `zstd`.
- **Hiba:** minden más: `gzip`, `deflate` vagy hiányzó fejléc (tömörítetlen válasz).

Fontos, hogy a riport szigorúbb a szokásosnál: a `gzip` is tömörítés, de ez a teszt csak a modern módszereket fogadja el. Ha az oldalad gzip-pel érkezik, a kártya ezt külön jelzi, és a Brotlira váltást javasolja. Csak a nyitóoldal HTML-jét méri, a CSS- és JavaScript-fájlokat nem.

## Hogyan javítsd

A lenti példák szöveges típusokra (HTML, CSS, JavaScript, JSON, SVG) állítják be a tömörítést.

### nginx

Az nginx alapból nem tud Brotlit: az `ngx_brotli` modul kell hozzá (az nginx.org dokumentációja csak a gzip-modult tárgyalja). A modul betöltése után a `http` blokkba:

```nginx title="nginx"
brotli on;
brotli_types text/plain text/css text/javascript application/javascript application/json image/svg+xml;
```

Ha a tárhelyen nem tudsz modult telepíteni, kérd a szolgáltatótól.

### Apache (.htaccess)

Az Apache `mod_brotli` modulja a 2.4.26-os verziótól érhető el, és `BROTLI_COMPRESS` kimeneti szűrőt ad:

```apache title=".htaccess"
<IfModule mod_filter.c>
    <IfModule mod_brotli.c>
        AddOutputFilterByType BROTLI_COMPRESS text/html text/plain text/css text/javascript application/javascript application/json image/svg+xml
    </IfModule>
</IfModule>
```

Ha a `mod_brotli` nincs betöltve, az `IfModule` miatt a szabály némán kimarad, ilyenkor a tárhelytől kell kérni a bekapcsolását. LiteSpeed Enterprise ezt az Apache-konfigurációból olvassa; OpenLiteSpeed nem, ott a WebAdmin felületen állítsd be.

### Cloudflare

A Cloudflare a látogató `Accept-Encoding` fejléce, a csomag és a beállított Compression Rule szabályok alapján tömörít. A dokumentáció szerint alapértelmezésben Free csomagon Zstandard, Pro és Business csomagon Brotli, Enterprise csomagon gzip a módszer. Ha a Cloudflare mögött a riport mégis gzip-et lát, a Compression Rules szabályokkal módosíthatod.

### WordPress

A WordPress maga nem tömöríti a kimenetet; ezt a webszerver (fent) vagy a CDN végzi. Tárhelyen, ahol a szerverkonfigot nem éred el, a tárhely felületén vagy a támogatásán át lehet bekapcsolni.

## Hogyan ellenőrizd

Futtasd újra a riportot, vagy parancssorból:

```bash title="Terminál"
curl -sI -H "Accept-Encoding: br, zstd, gzip" https://pelda.hu/ | grep -i content-encoding
```

A kimenetben `content-encoding: br` vagy `zstd` kell. Ha nincs ilyen sor, a válasz tömörítetlen.
