# CDN

> A teszt azt nézi, hogy az oldal előtt felismerhető-e CDN a válaszfejlécek alapján; ha nincs, minden kérés a saját szerverhez megy.

A CDN (Content Delivery Network, tartalomszolgáltató hálózat) olyan szerverek hálózata, amelyek a látogatóhoz közel, az ő szerverüktől függetlenül szolgálják ki az oldal tartalmát. A web.dev szerint a CDN előnye, hogy a szerverei közelebb vannak a felhasználóhoz, hogy hálózati optimalizálásokkal gyorsabban adják a tartalmat, és hogy a CDN gyorsítótára miatt a kérésnek nem kell az eredeti (origin) szerverig mennie. A CDN a nem gyorsítótárazható tartalom kiszolgálását is javíthatja.

## Hogyan mérjük

A riport a nyitóoldal válaszfejléceiből ismeri fel a CDN-t. A következő jelek számítanak:

| CDN | Mit keres a riport |
|---|---|
| Cloudflare | `cf-ray` fejléc |
| CloudFront | `x-amz-cf-id` fejléc |
| Fastly | `x-served-by` fejléc, amelynek értéke tartalmazza a `cache-` szót |
| Akamai | `x-akamai-` kezdetű fejléc, vagy a `server` fejléc értékében `akamai` |
| Bunny | `x-bunny-` kezdetű fejléc, vagy a `server` fejléc értékében `bunnycdn` |
| Sucuri | `x-sucuri-id` fejléc |
| Imperva | `x-cdn: imperva` fejléc |

- **Megfelelő:** a riport felismer egy CDN-t a fenti jelek közül.
- **Hiba:** egyik jel sincs.

A teszt csak azt nézi, hogy a CDN a nyitóoldal előtt áll-e. Azt nem, hogy a HTML-t a CDN gyorsítótárazza-e: Cloudflare-en például a CDN alapból nem gyorsítótáraz HTML-t, a `cf-ray` fejléc viszont akkor is megjelenik. Fordítva is igaz: egy a listán nem szereplő CDN a teszt szerint „nincs CDN”.

## Hogyan javítsd

A CDN használata nem kódrészlet kérdése, hanem szolgáltatásé és DNS-beállításé. Általános lépések:

1. Válassz egy CDN-szolgáltatót, és kövesd a dokumentációját az oldal hozzáadásához. Ingyenes csomagot is kínáló példa a Cloudflare, de a lista nem kizárólagos.
2. Állítsd át a DNS-t vagy a névszervereket a szolgáltató utasításai szerint.
3. Győződj meg róla, hogy a HTTPS továbbra is működik: a [TLS-tanúsítvány](https://hub.hellowp.io/hu/report/biztonsag/tls-tanusitvany/) és az [HTTPS-átirányítás](https://hub.hellowp.io/hu/report/biztonsag/https-atiranyitas/) teszt rendben legyen.
4. Állítsd be, mit tároljon a CDN. A statikus fájlokat (képek, CSS, JavaScript) a CDN gyorsítótárazza, a HTML-t viszont csak akkor, ha ezt külön szabállyal engedélyezed. Ezt gondold végig: a bejelentkezett vagy kosárral rendelkező látogatók oldalát nem szabad mindenkinek kiszolgálni.

### Cloudflare

A Cloudflare dokumentációja „Add a site” útmutatóban írja le az oldal hozzáadását. A gyorsítótárazás szabályait a Cache Rules adja. A Cloudflare CDN alapból nem gyorsítótáraz HTML-t és JSON-t, csak a megadott fájlkiterjesztésű (például kép, betűtípus, archívum) tartalmat.

### WordPress

WordPress-oldalon a CDN a DNS-nél vagy a tárhely felületén kapcsolódik be, nem a WordPressben. A WordPress hivatalos teljesítmény-útmutatója a „Content Offloading” fejezetben foglalkozik a tartalom kiszervezésével. Ha csak a képeket és a statikus fájlokat adnád CDN-ről, ahhoz a tárhelyszolgáltató vagy a CDN dokumentációját kövesd.

## Hogyan ellenőrizd

Futtasd újra a riportot. Parancssorból megnézheted a fejléceket:

```bash title="Terminál"
curl -sI https://pelda.hu/ | grep -iE "^(cf-ray|x-amz-cf-id|x-served-by|server|x-cdn)"
```

Cloudflare-nél a `cf-ray` sor jelzi, hogy a kérés a Cloudflare-en át érkezett.
