Origin-Agent-Cluster
Experimentell: Dies ist eine experimentelle Technologie
Überprüfen Sie die Browser-Kompatibilitätstabelle sorgfältig vor der Verwendung auf produktiven Webseiten.
Der HTTP Origin-Agent-Cluster
Antwort-Header wird verwendet, um anzufordern, dass das zugehörige Document
in einem ursprungsbezogenen Agenten-Cluster platziert wird. Das bedeutet, dass Betriebssystemressourcen (z. B. der Betriebssystemprozess), die zur Ausführung des Dokuments verwendet werden, nur mit anderen Dokumenten aus demselben Ursprung geteilt werden sollten.
Der Effekt davon ist, dass ein ressourcenintensives Dokument weniger wahrscheinlich die Leistung von Dokumenten aus anderen Ursprüngen beeinträchtigt.
Header-Typ | Antwort-Header |
---|---|
Verbotener Header-Name | Nein |
Syntax
Origin-Agent-Cluster: <boolean>
Direktiven
Beschreibung
Moderne Webbrowser verfügen über eine Multiprozess-Architektur, in der Seiten aus verschiedenen Ursprüngen in verschiedenen Betriebssystemprozessen ausgeführt werden können. Dies ist wichtig für die Leistung, da es bedeutet, dass eine ressourcenintensive Seite weniger Auswirkungen auf andere Seiten hat, die der Benutzer geöffnet hat.
Allerdings können Browser in der Regel keine gleichortsbezogenen, ursprungsübergreifenden Seiten in verschiedenen Prozessen ausführen, da bestimmte DOM-APIs von einer gleichortsbezogenen, ursprungsübergreifenden Kommunikation abhängen. Zum Beispiel werden standardmäßig Seiten aus den folgenden zwei Ursprüngen die gleichen Betriebssystemressourcen teilen:
https://apples.example.org https://oranges.example.org
Durch das Setzen des Origin-Agent-Cluster
Headers kann eine Seite anfordern, dass der Browser diesem Ursprung dedizierte Ressourcen zuweist, die nicht mit anderen Ursprüngen geteilt werden.
Der Browser ist nicht verpflichtet, dieser Anforderung nachzukommen. Wenn er es tut, gibt die Window.originAgentCluster
Eigenschaft true
zurück, und das Fenster ist nicht in der Lage, die folgenden Dinge zu tun, die alle auf einer gleichortsbezogenen, ursprungsübergreifenden Kommunikation beruhen:
- Verwenden von
Document.domain
. - Senden von
WebAssembly.Module
Objekten an andere gleichortsbezogene, ursprungsübergreifende Seiten mitpostMessage()
. - Senden von
SharedArrayBuffer
oderWebAssembly.Memory
Objekten an andere gleichortsbezogene, ursprungsübergreifende Seiten.
Ursprungsbezogene Agenten-Cluster sollten nicht als Sicherheitsfunktion betrachtet werden: Browser können aus verschiedenen Gründen die Anforderung ignorieren oder sie so umsetzen, dass kein Speicherschutz bereitgestellt wird (z. B. durch Verwendung separater Threads anstelle von separaten Prozessen). Stattdessen ist diese Funktion ein Hinweis darauf, dass die Benutzererfahrung verbessert werden würde, wenn diesem Ursprung dedizierte Ressourcen zugewiesen würden.
Angenommen, Ihre Seite enthält eine Seite aus einem Ursprung, die ein gleichortsbezogenes, ursprungsübergreifendes iframe einbettet, das ein ressourcenintensives Spiel ausführt. Durch das Setzen von Origin-Agent-Cluster
auf dem Dokument im iframe können Sie verhindern, dass das Spiel die Leistung der Hauptseite beeinträchtigt.
Der Browser wird sicherstellen, dass alle Seiten von einem bestimmten Ursprung entweder ursprungsbezogen sind oder nicht. Das bedeutet:
- Wenn die erste Seite von einem Ursprung den Header nicht setzt, dann werden keine anderen Seiten von diesem Ursprung ursprungsbezogen sein, auch wenn diese anderen Seiten den Header setzen.
- Wenn die erste Seite von einem Ursprung den Header setzt und ursprungsbezogen gemacht wird, dann werden alle anderen Seiten von diesem Ursprung ursprungsbezogen, unabhängig davon, ob sie dies anfordern oder nicht.
Um solche unvorhersehbaren Situationen zu vermeiden, sollten Sie diesen Header für alle Seiten von einem bestimmten Ursprung setzen, oder für keine von ihnen.
Beispiele
Origin-Agent-Cluster: ?1
Spezifikationen
Specification |
---|
HTML Standard # origin-agent-cluster |
Browser-Kompatibilität
BCD tables only load in the browser