CDN Response Header analysieren

In diesem Artikel erfährst du, welche HTTP Header bei den CDN Responses gesetzt sind und was sie bedeuten.


In diesem Beispiel zeigen wir mithilfe von curl, welche Header gesendet werden. Die Analyse der HTTP Header kann auch mithilfe der Google Chrome Dev Tools durchgeführt werden.


Beispiel Response eines CDN Requests:

curl -I https://content.cstatic.io/assets/img/creoline-logo.svg

HTTP/2 200
date: Wed, 15 Sep 2021 08:50:14 GMT
content-type: image/svg+xml
content-length: 2658
vary: Accept-Encoding
server: creoline
cache-control: max-age=31536000, public
etag: 0f137075a689c1efd273c3b99a09e8cd
expires: Thu, 15 Sep 2022 08:50:12 GMT
last-modified: Tue, 14 Jul 2020 19:21:24 GMT
link: <https://www.creoline.de/assets/img/creoline-logo.svg>; rel="canonical"
access-control-allow-origin: *
x-content-type-options: nosniff
x-cache-date: Wed, 15 Sep 2021 08:50:12 GMT
x-edge-pop: FRANKFURT
x-cache: HIT


Response Header

x-edge-pop

Der Edge PoP Header liefert Informationen darüber, über welchen PoP Server die statische Datei ausgeliefert wurde. Die Auswahl des nächstmöglichen Servers geschieht über unser Anycast DNS Netzwerk. \n

Das Schema ist bei allen Standorten identisch und richtet sich nach folgendem Schema:

  • Kontinent - Land - Ort - Standortnummer
  • In diesem Beispiel: EU-DE-FRANKFURT-01


x-edge-ip

Die Edge IP dient als zusätzliche Information zu den Standortinformationen aus dem x-edge-pop Header. Beachte, dass die Edge-IP-Adresse auch am identischen Standort unterschiedlich sein kann.


x-cache-date

Über den "Cache-Date" Header wird das Datum der initialen Cache Erstellung dieser statischen Datei zurückgeliefert.

Alle Zeitstempel der HTTP Header sind immer in GMT angegeben und müssen für die deutsche Zeit je nach aktueller Zeitzone (MEZ, GMT+1 oder MESZ GMT+2) umgerechnet werden.


x-cache

Der Cache Header liefert Informationen über den aktuellen Status des CDN Caches. Folgende Werte sind möglich:


HIT

Die statische Datei befindet sich bereits im CDN Cache und wird frühestens beim Erreichen der Cache TTL (Expires Header) mit dem Ziel-Server abgeglichen.



STALE

Die Cache TTL wurde erreicht und überschritten. Die statische Datei wird trotz Überschreitung der Cache TTL weiterhin durch den CDN Cache ausgeliefert und anschließend im Hintergrund aktualisiert. Unabhängig von der eingestellten Cache TTL wird der Cache für jede statische Datei 7 Tage nach Auslauf der TTL im STALE Modus vorgehalten, um bestmögliche Response Zeiten bei geringen Aufrufen zu gewährleisten.



MISS

Die statische Ressource befindet sich (noch) nicht im CDN Cache und musste parallel vom Ziel-Server heruntergeladen werden. Sobald die identische Ressource erneut angefragt wird, wird vom CDN ein HIT zurückgeliefert.


content-type

Der Content-Type Header liefert den tatsächlichen Mime-Type der Response. Je nach gewählter CDN Einstellung kann der Content-Type von der tatsächlichen Quelldatei abweichen.


x-original-content-type

Der Original-Content-Type Header liefert den Wert des ursprünglichen Inhaltes zurück. Wird z.B. eine JPG-Grafik in eine WebP Grafik konvertiert, wird hier image/jpg als Ursprungswert zurückgeliefert.


Mithilfe von dem Link-Response-Header kann Duplicated Content vermieden werden. Beispiel:

link: <https://www.creoline.de/assets/img/creoline-logo.svg>; rel="canonical"


Durch die Angabe der Original-Quelle kann eine doppelte Indexierung vermieden werden.



WebP Konvertierung

Bei der Konvertierung in WebP-Grafiken wird die ursprüngliche URL mit einem .jpg oder .png Suffix nicht verändert, um die Abwärtskompatibilität zu älteren Browsern ohne WebP-Unterstützung zu gewährleisten. Über die x-converted und x-original-content-type Header wird der Konvertierungsprozess sowie das Ursprungsformat zurückgeliefert.


Beispiel Response Header:

x-converted: image/jpeg to image/webp
x-original-content-length: 80000
x-original-content-type: image/jpeg
x-quality: 80


Die automatische WebP Konvertierung wird über den HTTP-Header Accept gesteuert. Damit die Original JPG oder PNG Grafik in WebP konvertiert werden kann, muss der Client den Accept-Header mit dem Wert image/webp senden. Andernfalls wird die Original-Grafik bestmöglich komprimiert und an den Client zurückgeliefert.