HTTP Permissions-Policy deferred-fetch

Typ

Die deferred-fetch-Direktive steuert den Zugriff auf die Deferred Fetch API für Background-Requests nach Seitenende.

Syntax

Die Direktive definiert eine Allowlist für Ursprünge, die verzögerte Background-Fetches ausführen dürfen.

http
Permissions-Policy: deferred-fetch=(self)
Permissions-Policy: deferred-fetch=(self "https://analytics.com")
Permissions-Policy: deferred-fetch=()

Direktiven

Die Direktive unterstützt Standard-Allowlist-Werte für präzise Zugriffssteuerung.

self
Erlaubt Deferred-Fetch nur für das Hauptdokument des gleichen Ursprungs. Eingebettete iFrames von anderen Ursprüngen werden blockiert.
origin-list
Liste von Ursprüngen in Anführungszeichen, z.B. "https://sync-service.example.com", die zusätzlich zum Hauptdokument Zugriff erhalten. Für Background-Sync-Dienste.

Beispiele

Die folgenden Beispiele zeigen typische Anwendungsfälle für Analytics, Offline-Sync und E-Commerce-Checkout.

Progressive Web App mit Offline-Sync

Eine PWA synchronisiert Nutzerdaten im Hintergrund auch nach Schließen der Seite.

http
HTTP/1.1 200 OK
Content-Type: text/html
Permissions-Policy: deferred-fetch=(self)

<!DOCTYPE html>
<html>
<head><title>Offline Notes App</title></head>
<body>
  <script>
    navigator.deferredFetch({
      url: '/api/sync',
      method: 'POST',
      body: JSON.stringify({notes: localData}),
      activateAfter: 0
    });
  </script>
</body>
</html>

E-Commerce mit Analytics-Integration

Eine E-Commerce-Plattform erlaubt einem Analytics-Dienst verzögerte Datenübertragung nach Checkout.

http
HTTP/1.1 200 OK
Content-Type: text/html
Permissions-Policy: deferred-fetch=(self "https://analytics.tracking.com")

<!DOCTYPE html>
<html>
<head><title>Shop Checkout</title></head>
<body>
  <iframe src="https://analytics.tracking.com/tracker"
          allow="deferred-fetch"></iframe>
</body>
</html>

REST-API ohne Background-Sync

Ein API-Endpunkt deaktiviert alle Background-Sync-APIs für minimale Ressourcennutzung.

http
HTTP/1.1 200 OK
Content-Type: application/json
Permissions-Policy: deferred-fetch=(), deferred-fetch-minimal=()

{
  "status": "success",
  "order_id": 12345
}

Vorteile für die Systemarchitektur

  • Ermöglicht zuverlässige Datenübertragung auch nach Seitenende
  • Unterstützt Offline-First-Architekturen mit Background-Synchronisation
  • Reduziert Datenverlust bei abruptem Seitenwechsel oder Tab-Schließung
  • Verhindert unerwünschte Background-Activity durch Drittanbieter

Spezifikation

Experimentelle API in Chromium-basierten Browsern. Definiert in der Deferred Fetch API Proposal. Erfordert Service Worker für Background-Ausführung.

Weitere Spezifikationen

Permissions-Policy Header, Content-Security-Policy Header