# Versioned asset (cache-busting via path)
https://cdn.dfctnet.org/app/v2.4.1/bundle.js
# With query string (ignored by cache key by default)
https://cdn.dfctnet.org/assets/font.woff2?v=3
Query strings are stripped from cache keys by default. To include them, set x-cache-qs: true in your origin response headers.
Cache Purge API
Invalidate cached assets immediately. Purge propagates to all edge nodes within ~5 seconds.
POST /api/purge
# Purge single file
curl -X POST https://cdn.dfctnet.org/api/purge \
-H "Authorization: Bearer <token>" \
-d '{"path": "/assets/logo.svg"}'
# Purge by prefix (wildcard)
curl -X POST https://cdn.dfctnet.org/api/purge \
-H "Authorization: Bearer <token>" \
-d '{"prefix": "/assets/images/"}'
Response Headers
Every CDN response includes diagnostic headers to help debug caching behaviour.
x-cache: HIT| MISS | STALE x-cache-node: fra-01 x-cache-age: 3721# seconds since cached x-cache-ttl: 82679# seconds remaining x-origin-time: 43# ms, only on MISS vary: Accept-Encoding
To override TTL per response, set Cache-Control: max-age=N on your origin. The CDN respects s-maxage over max-age when both are present.