Origin-Agent-Cluster

Experimentell: Dies ist eine experimentelle Technologie
Überprüfen Sie die Browser-Kompatibilitätstabelle sorgfältig, bevor Sie diese produktiv verwenden.

Der HTTP Origin-Agent-Cluster Antwort-Header wird verwendet, um zu verlangen, dass das zugehörige Document in einem origin-gebundenen Agenten-Cluster platziert wird. Das bedeutet, dass Betriebssystemressourcen (zum Beispiel der Betriebssystemprozess), die zur Auswertung des Dokuments verwendet werden, nur mit anderen Dokumenten aus dem gleichen Origin geteilt werden sollten.

Der Effekt davon ist, dass ein ressourcenintensives Dokument weniger wahrscheinlich die Leistung von Dokumenten anderer Origine beeinträchtigt.

Moderne Webbrowser haben eine Multiprozess-Architektur, in der Seiten von verschiedenen Originen in verschiedenen Betriebssystemprozessen laufen können. Das ist wichtig für die Leistung, da es bedeutet, dass eine ressourcenintensive Seite weniger Einfluss auf andere vom Benutzer geöffnete Seiten hat.

Allerdings können Browser nicht generell site-gleiche, cross-origin-Seiten in verschiedenen Prozessen ausführen, aufgrund bestimmter DOM-APIs, die auf site-gleiche, cross-origin-Kommunikation angewiesen sind. Zum Beispiel werden standardmäßig Seiten von den folgenden zwei Originen die gleichen Betriebssystemressourcen teilen:

https://apples.example.org
https://oranges.example.org

Durch Setzen des Origin-Agent-Cluster-Headers kann eine Seite anfordern, dass der Browser diesem Origin dedizierte Ressourcen zuweist, die nicht mit anderen Originen geteilt werden.

Der Browser ist nicht dazu verpflichtet, die Anfrage zu berücksichtigen. Wenn er es tut, gibt die Window.originAgentCluster Eigenschaft true zurück, und das Fenster kann folgende Dinge nicht tun, die alle auf site-gleiche, cross-origin-Kommunikation angewiesen sind:

Origin-gebundene Agenten-Cluster sollten nicht als Sicherheitsmerkmal betrachtet werden: Browser können die Anfrage aus verschiedenen Gründen ignorieren oder es auf eine Weise implementieren, die keinen Speicherschutz bietet (zum Beispiel durch Verwendung separater Threads statt separater Prozesse). Stattdessen ist dieses Feature ein Hinweis darauf, dass die Benutzererfahrung verbessert wird, wenn diesem Origin dedizierte Ressourcen zugewiesen werden.

Zum Beispiel, nehmen wir an, Ihre Seite enthält eine Seite von einem Origin, das ein site-gleiches, cross-origin-iframe einbettet, das ein ressourcenintensives Spiel ausführt. Durch Setzen von Origin-Agent-Cluster auf das Dokument im iframe kann verhindert werden, dass das Spiel die Leistung der Hauptseite beeinflusst.

Der Browser wird sicherstellen, dass alle Seiten von einem gegebenen Origin entweder origin-gebunden sind oder nicht. Das bedeutet:

  • Wenn die erste Seite von einem Origin den Header nicht setzt, dann werden auch keine anderen Seiten von diesem Origin origin-gebunden sein, selbst wenn diese anderen Seiten den Header setzen.
  • Wenn die erste Seite von einem Origin den Header setzt und origin-gebunden wird, dann werden alle anderen Seiten von diesem Origin origin-gebunden, unabhängig davon, ob sie es verlangen oder nicht.

Um diese Art von unvorhersehbaren Situationen zu vermeiden, sollten Sie diesen Header für alle Seiten von einem gegebenen Origin setzen, oder für keine.

Headertyp Antwort-Header
Verbotener Headername Nein

Syntax

http
Origin-Agent-Cluster: <boolean>

Direktiven

<boolean>

?1 bedeutet, dass das zugehörige Document in einem origin-gebundenen Agenten-Cluster platziert werden soll. Andere Werte als ?1 werden ignoriert (z. B. das ?0 strukturierte Feld für falsch).

Beispiele

http
Origin-Agent-Cluster: ?1

Spezifikationen

Specification
HTML Standard
# origin-agent-cluster

Browser-Kompatibilität

BCD tables only load in the browser

Siehe auch