Client Hints für netzwerkbewusstes Laden nutzen
AI generated
60fps
ms
Web Performance
Client Hints für netzwerkbewusstes Laden nutzen
Wie der Server über die Netzwerkqualität des Clients informiert wird

Nicht jeder Nutzer surft mit Glasfaseranbindung. Client Hints übermitteln dem Server Informationen über Netzwerkqualität und explizite Datensparsamkeit, sodass Inhalte gezielt an die tatsächliche Verbindung angepasst werden können, statt pauschal für die schnellste denkbare Verbindung zu optimieren.

15 Min. Lesezeit Client Hints Adaptive Auslieferung

1. Was Client Hints sind und wie sie funktionieren

Client Hints sind eine Gruppe von HTTP-Headern, über die der Browser dem Server proaktiv strukturierte Informationen über das Gerät, die Präferenzen und die Netzwerkbedingungen des Nutzers mitteilt. Im Gegensatz zum klassischen User-Agent-String, der ein einziges, schwer zu parsendes Textfeld mit vielen redundanten Informationen darstellt, liefern Client Hints gezielte, einzeln abrufbare Werte wie die Bildschirmbreite, das bevorzugte Farbschema oder eben die Netzwerkqualität.

Für die Web-Performance sind besonders die sogenannten Network Information Client Hints relevant, zu denen Save-Data, Downlink und ECT (Effective Connection Type) gehören. Diese Header erlauben es einem Server, bereits bei der ersten Anfrage zu erkennen, ob ein Nutzer auf einer langsamen Mobilfunkverbindung unterwegs ist oder explizit um Datensparsamkeit gebeten hat, und die Antwort entsprechend anzupassen, bevor überhaupt ein einziges Byte an Bilddaten übertragen wurde.

2. Opt-in über den Accept-CH-Header

Aus Datenschutzgründen werden die meisten Client Hints nicht automatisch bei jeder Anfrage mitgesendet, sondern müssen vom Server explizit angefordert werden. Das geschieht über den Accept-CH-Header, den der Server in seiner Antwort setzt und der dem Browser mitteilt, welche Client Hints er bei zukünftigen Anfragen an diesen Origin senden soll. Erst nach diesem Opt-in liefert der Browser die angeforderten Header bei nachfolgenden Requests mit.

Diese Zwei-Schritt-Logik bedeutet, dass der allererste Seitenaufruf noch ohne die gewünschten Hints auskommen muss, während alle nachfolgenden Requests innerhalb derselben Origin sie automatisch enthalten. Für Single-Page-Applications oder Seiten mit mehreren nachgeladenen Ressourcen ist das meist unproblematisch, da bereits der zweite Request von der Optimierung profitiert.


# Server-Antwort auf die erste Anfrage: Client Hints anfordern
HTTP/1.1 200 OK
Accept-CH: Save-Data, Downlink, ECT, DPR, Viewport-Width
Critical-CH: Save-Data

# Nachfolgende Anfrage des Browsers enthaelt automatisch:
GET /produkte/kamera-xz200 HTTP/1.1
Save-Data: on
Downlink: 0.7
ECT: 3g
DPR: 2
Viewport-Width: 390

3. Der Save-Data-Hint für explizite Datensparsamkeit

Der Save-Data-Header ist der wichtigste und am einfachsten zu nutzende Client Hint, weil er nicht auf einer Netzwerkmessung basiert, sondern auf einer expliziten Nutzerentscheidung. Aktiviert ein Nutzer in den Betriebssystem- oder Browsereinstellungen den Datensparmodus, sendet der Browser bei jeder Anfrage den Header Save-Data: on mit, unabhängig davon, wie schnell die aktuelle Verbindung tatsächlich ist.

Für den Server bedeutet dieser Hint ein klares Signal: Der Nutzer möchte bewusst weniger Daten übertragen bekommen, etwa weil er ein begrenztes Datenvolumen hat oder in einem Land mit teuren Mobilfunktarifen unterwegs ist. Sinnvolle Reaktionen sind das Ausliefern kleinerer Bildvarianten, das Deaktivieren von Autoplay-Videos oder das Weglassen nicht essenzieller Web-Fonts und Animationen, um die übertragene Datenmenge spürbar zu reduzieren.

Während Save-Data eine bewusste Nutzerentscheidung abbildet, liefern Downlink und ECT eine automatische Einschätzung der tatsächlichen Netzwerkqualität. Downlink gibt die geschätzte Bandbreite in Megabit pro Sekunde als Gleitkommazahl an, während ECT (Effective Connection Type) eine grobe Kategorisierung in slow-2g, 2g, 3g oder 4g liefert, basierend auf gemessener Round-Trip-Time und Durchsatz der jüngsten Anfragen.

Diese Werte sind bewusst als Schätzung und nicht als exakte Messung zu verstehen, da sie auf historischen Daten der letzten Anfragen desselben Browsers basieren und sich die tatsächliche Verbindungsqualität jederzeit ändern kann, etwa beim Wechsel von WLAN zu Mobilfunk. Trotzdem liefern sie einen wertvollen groben Anhaltspunkt, der insbesondere für binäre Entscheidungen wie 'einfache oder aufwendige Bildvariante ausliefern' vollkommen ausreicht.

5. Adaptive Auslieferung von Bildqualität und Inhalten

Der praktisch wichtigste Anwendungsfall für Client Hints ist die adaptive Auslieferung von Bildern. Erkennt der Server anhand von Save-Data oder eines niedrigen ECT-Werts eine langsame Verbindung, kann er serverseitig eine stärker komprimierte Bildvariante mit geringerer Auflösung ausliefern, statt die Entscheidung allein dem Client per srcset zu überlassen. Das reduziert die übertragene Datenmenge bereits auf Serverebene, ohne dass zusätzliche clientseitige Logik nötig ist.

Neben Bildern lassen sich auch andere Inhalte anpassen: Videovorschauen können durch statische Thumbnails ersetzt, die Anzahl gleichzeitig geladener Produktempfehlungen reduziert oder aufwendige Web-Font-Varianten durch Systemfonts ersetzt werden. Wichtig ist, diese Anpassungen so zu gestalten, dass sie die grundlegende Funktionalität und Lesbarkeit der Seite niemals beeinträchtigen, sondern ausschliesslich die Datenmenge und Ladezeit optimieren.

6. Praktische Umsetzung im Backend

In der Backend-Logik lassen sich die Client-Hints-Header wie jeder andere HTTP-Header auslesen und in einer zentralen Stelle, etwa einer Middleware oder einem Event-Listener, in ein einfaches Kontextobjekt übersetzen. Dieses Objekt kann dann in Templates oder Bild-Rendering-Diensten abgefragt werden, um zu entscheiden, welche Bildvariante ausgeliefert oder welche Inhalte reduziert werden sollen, ohne dass jede einzelne Stelle im Code die Header selbst parsen muss.

Wichtig ist, den Accept-CH-Header konsistent auf allen Seiten der Anwendung zu setzen, da er sich sonst nicht zuverlässig auf nachfolgende Requests auswirkt. Ausserdem sollte der Vary-Header entsprechend gesetzt werden, damit Caching-Schichten wie CDNs unterschiedliche Antworten für unterschiedliche Client-Hints-Werte korrekt vorhalten, statt versehentlich eine für langsame Verbindungen optimierte Antwort an einen Nutzer mit schneller Verbindung auszuliefern.

7. Clientseitige Alternative: die NetworkInformation-API

Neben den serverseitig ausgewerteten Headern existiert mit der NetworkInformation-API auch ein clientseitiger Zugriff auf dieselben Informationen, erreichbar über navigator.connection. Diese API liefert dieselben Werte wie Downlink, ECT und Save-Data direkt in JavaScript, ohne dass ein Server-Roundtrip nötig ist, was sich gut für clientseitige Entscheidungen eignet, etwa ob ein Video automatisch abgespielt oder eine Bildergalerie vorab geladen werden soll.

Beide Ansätze schließen sich nicht aus, sondern ergänzen sich: Die Header eignen sich für Entscheidungen, die bereits beim ersten Byte der Antwort feststehen müssen, etwa welche Bildvariante ausgeliefert wird, während die JavaScript-API sich für nachträgliche, interaktive Entscheidungen eignet, die erst nach dem initialen Laden der Seite relevant werden.

8. Datenschutzüberlegungen bei Client Hints

Client Hints wurden bewusst so entworfen, dass sie im Vergleich zum User-Agent-String weniger zum Fingerprinting geeignet sind, da sie einzeln angefordert werden müssen und viele der sensibleren Hints, etwa detaillierte Geräteinformationen, nur nach explizitem Opt-in des Servers und teils nur über HTTPS übertragen werden. Die Network Information Hints wie Save-Data, Downlink und ECT gelten dabei als vergleichsweise unkritisch, da sie kaum zur eindeutigen Identifizierung eines einzelnen Nutzers beitragen.

Dennoch sollte bei der Verarbeitung dieser Daten die Datenschutz-Grundverordnung beachtet werden, insbesondere wenn Netzwerkdaten zusammen mit anderen personenbezogenen Daten gespeichert oder ausgewertet werden. Für die reine Anpassung der Auslieferung in Echtzeit, ohne dauerhafte Speicherung der Werte, ergeben sich in der Praxis in der Regel keine zusätzlichen datenschutzrechtlichen Anforderungen über die ohnehin geltenden hinaus.

9. Browser-Support und Grenzen der Methode

Client Hints und insbesondere die Network Information Hints werden derzeit vor allem von Chromium-basierten Browsern wie Chrome und Edge unterstützt, während Safari und Firefox diese Header bislang nicht implementiert haben. Das bedeutet, dass eine auf Client Hints basierende Optimierung für einen erheblichen Teil der Nutzer schlicht keine Wirkung zeigt, was bei der Priorisierung dieser Massnahme berücksichtigt werden sollte.

Aus diesem Grund sollten Client Hints niemals als alleinige Grundlage einer Optimierungsstrategie dienen, sondern stets als zusätzliche, progressive Verbesserung neben grundlegenden Techniken wie responsive Bildern mit srcset und sizes verstanden werden. Für Browser ohne Unterstützung greifen diese grundlegenden Mechanismen weiterhin zuverlässig, während Nutzer unterstützter Browser von der zusätzlichen, feingranularen Anpassung profitieren.

Client Hint Bedeutung Typische Reaktion
Save-Data Nutzer hat Datensparmodus aktiviert Kleinere Bilder, kein Autoplay
Downlink Geschätzte Bandbreite in Mbit/s Bildqualität stufenweise anpassen
ECT Effektiver Verbindungstyp (2g bis 4g) Grobe Qualitätsstufe wählen
DPR Device Pixel Ratio des Bildschirms Passende Bildauflösung liefern
Viewport-Width Breite des sichtbaren Bereichs Bildgröße an Layout anpassen

Mironsoft

Web Performance, Core Web Vitals und Ladezeit-Optimierung

Ladezeiten, die Nutzer nicht abspringen lassen, bevor die Seite überhaupt sichtbar ist?

Wir prüfen bestehende Webseiten auf langsame Core Web Vitals, aufgeblähte JavaScript-Bundles und ungenutzte Render-Blocker und bauen daraus eine Performance-Grundlage, die messbar bleibt statt nur einmalig gut auszusehen.

Performance-Audit

Core Web Vitals, Ladewasserfall und Render-Blocker systematisch messen und beheben.

Bundle-Optimierung

JavaScript- und CSS-Bundle-Größe sowie Code-Splitting gezielt reduzieren.

Monitoring-Aufbau

Kontinuierliches Performance-Monitoring statt einmaliger Momentaufnahme etablieren.

10. Zusammenfassung

Client Hints

Ziel

Server erkennt Netzwerkqualität vor der Auslieferung

Kern-Hints

Save-Data, Downlink und ECT für Netzwerkinformationen

Voraussetzung

Opt-in über den Accept-CH-Header des Servers

Grenze

Bislang nur in Chromium-basierten Browsern verfügbar

11. FAQ: Client Hints

1Was sind Client Hints allgemein?
Eine Gruppe strukturierter HTTP-Header, über die der Browser dem Server gezielte Informationen über Gerät, Präferenzen und Netzwerkqualität mitteilt, als moderne Alternative zum unstrukturierten User-Agent-String.
2Wie aktiviere ich Client Hints auf meiner Seite?
Der Server muss in seiner Antwort den Accept-CH-Header mit den gewünschten Hints setzen. Ab der nächsten Anfrage an denselben Origin sendet der Browser diese Header automatisch mit.
3Was bewirkt der Save-Data-Header konkret?
Er signalisiert, dass ein Nutzer den Datensparmodus aktiv eingeschaltet hat. Der Server kann darauf reagieren, indem er kleinere Bilder, reduzierte Inhalte oder deaktiviertes Autoplay ausliefert.
4Was ist der Unterschied zwischen Downlink und ECT?
Downlink liefert eine geschätzte Bandbreite als Zahl in Megabit pro Sekunde, während ECT eine grobe Kategorie wie 2g, 3g oder 4g liefert, die sich einfacher für binäre Entscheidungen eignet.
5Funktionieren Client Hints in allen Browsern?
Nein, derzeit unterstützen vor allem Chromium-basierte Browser wie Chrome und Edge die Network Information Client Hints, während Safari und Firefox sie bislang nicht implementieren.
6Muss ich Client Hints speichern oder darf ich sie nur live nutzen?
Beides ist möglich, aber für die reine Echtzeit-Anpassung der Auslieferung ist keine dauerhafte Speicherung nötig. Wer die Werte dennoch speichert, sollte die geltenden Datenschutzanforderungen beachten.
7Was ist der Unterschied zu responsive Bildern mit srcset?
srcset überlässt die Auswahl der Bildvariante dem Browser basierend auf Bildschirmgröße und Pixel-Dichte. Client Hints erlauben es dem Server, zusätzlich die Netzwerkqualität in die Entscheidung einzubeziehen, bereits bevor der Client wählt.
8Kann ich Netzwerkinformationen auch ohne Server-Header abfragen?
Ja, über die clientseitige NetworkInformation-API und das Objekt navigator.connection lassen sich dieselben Werte direkt in JavaScript auslesen, ohne einen Server-Roundtrip zu benötigen.
9Welche Rolle spielt der Vary-Header bei Client Hints?
Er signalisiert Caching-Schichten wie CDNs, dass die Antwort je nach Client-Hints-Wert unterschiedlich ausfällt, damit keine für langsame Verbindungen optimierte Antwort fälschlich an Nutzer mit schneller Verbindung ausgeliefert wird.
10Lohnt sich die Implementierung trotz eingeschränkten Browser-Supports?
Ja, da die Implementierung als progressive Verbesserung konzipiert werden kann, die unterstützenden Browsern zusätzlichen Nutzen bringt, während nicht unterstützende Browser einfach auf die grundlegende Auslieferung zurückfallen.