HTTP Service-Worker Header

Der HTTP-Header Service-Worker ist ein Request-Header, der vom Browser beim Laden von Service Worker Scripts gesendet wird. Er identifiziert den Request-Typ und ermöglicht serverseitige Validierung und Policy-Enforcement für Progressive Web Apps.

Typ

Request-Header

Syntax

Der Header gibt den Service Worker Modus an.

http
Service-Worker: script
Service-Worker: all

Direktiven

Die Direktiven definieren den Kontext der Service Worker Anfrage.

script
Der Request lädt das initiale Service Worker Script während der Registrierung.
all
Der Request kommt von einem bereits installierten Service Worker und betrifft beliebige Ressourcen.

Beispiele

Nachfolgend finden Sie praktische Anwendungsbeispiele für den Service-Worker-Header.

Beispiel 1 Service Worker Registrierung

http
GET /sw.js HTTP/1.1
Host: app.example.com
Service-Worker: script
User-Agent: Mozilla/5.0...

Browser lädt Service Worker Script, Server kann spezielle Security-Policies für SW-Scripts anwenden.

Beispiel 2 Fetch von installiertem Worker

http
GET /api/offline-data HTTP/1.1
Host: app.example.com
Service-Worker: all
User-Agent: Mozilla/5.0...

Installierter Service Worker fetcht Daten, Server erkennt SW-Kontext für spezielle Caching-Strategien.

Beispiel 3 Server validiert SW-Script

http
GET /sw.js HTTP/1.1
Host: app.example.com
Service-Worker: script

HTTP/1.1 200 OK
Content-Type: application/javascript
Service-Worker-Allowed: /app/
Cache-Control: no-cache

self.addEventListener('install', event => {...});

Server liefert SW-Script mit expliziter Scope-Erlaubnis via Service-Worker-Allowed Header.

Service Worker Registration Flow

Service Worker Registrierungs-Ablauf

Vorteile für die Systemarchitektur

  • Security Enforcement: Server kann unterschiedliche CSP-Policies für SW-Scripts und normale Requests anwenden
  • Scope Validation: Service-Worker-Allowed Header erweitert erlaubten Scope basierend auf Request-Header
  • Analytics: Server unterscheidet zwischen Browser-Requests und SW-Requests für präzise Metriken

Spezifikation

W3C Service Workers Specification https://www.w3.org/TR/service-workers/#service-worker-header

Weitere Spezifikationen

Service-Worker-Allowed Header, Service-Worker-Navigation-Preload