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 origin-gebundenen Agent-Cluster platziert werden soll. Das bedeutet, dass Betriebssystemressourcen (zum Beispiel der Betriebssystemprozess), die zur Ausführung des Dokuments verwendet werden, nur mit anderen Dokumenten vom selben origin geteilt werden sollten.
Die Auswirkung davon ist, dass ein ressourcenintensives Dokument die Leistung von Dokumenten aus anderen Ursprüngen weniger beeinträchtigen wird.
Header-Typ | [Antwort-Header](/de-DE/docs/Glossary/Response_header) |
---|---|
[Verbotener Anfrage-Header](/de-DE/docs/Glossary/Forbidden_request_header) | Nein |
Syntax
Origin-Agent-Cluster: <boolean>
Direktiven
Beschreibung
Moderne Webbrowser haben eine Multiprozess-Architektur, in der Seiten von 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 nicht so stark auf andere Seiten Einfluss nimmt, die der Benutzer geöffnet hat.
Allerdings können Browser nicht generell same-site, cross-origin Seiten in verschiedenen Prozessen ausführen, aufgrund bestimmter DOM-APIs, die von der Kommunikation zwischen same-site und cross-origin abhängen. Zum Beispiel werden standardmäßig Seiten von 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 dedizierte Ressourcen für diesen Ursprung bereitstellt, die mit keinen anderen Ursprüngen geteilt werden.
Der Browser ist nicht verpflichtet, der Anforderung nachzukommen. Wenn er dies tut, gibt die Window.originAgentCluster
Eigenschaft true
zurück, und das Fenster ist nicht in der Lage, folgende Dinge zu tun, die alle von same-site, cross-origin Kommunikation abhängen:
- Verwendung von
Document.domain
. - Senden von
WebAssembly.Module
Objekten an andere same-site cross-origin Seiten mittelspostMessage()
. - Senden von
SharedArrayBuffer
oderWebAssembly.Memory
Objekten an andere same-site cross-origin Seiten.
Origin-gebundene Agent-Cluster sollten nicht als Sicherheitsmerkmal angesehen werden: Browser können die Anforderung aus verschiedenen Gründen ignorieren oder sich entscheiden, sie auf eine Weise zu implementieren, die keinen Speicherschutz bietet (zum Beispiel durch die Verwendung separater Threads statt separater Prozesse). Stattdessen ist dieses Feature ein Hinweis darauf, dass die Benutzererfahrung verbessert würde, wenn diesem Ursprung dedizierte Ressourcen zugewiesen würden.
Zum Beispiel, wenn Ihre Seite eine Seite von einem Ursprung enthält, die ein same-site, cross-origin iframe einbettet, das ein ressourcenintensives Spiel ausführt. Durch das Setzen von Origin-Agent-Cluster
auf das Dokument im iframe können Sie verhindern, dass das Spiel die Leistung der Hauptseite beeinträchtigt.
Der Browser stellt sicher, dass alle Seiten von einem bestimmten Ursprung entweder origin-gebunden sind oder nicht. Das bedeutet:
- Wenn die erste Seite von einem Ursprung den Header nicht setzt, werden keine anderen Seiten von diesem Ursprung origin-gebunden sein, auch wenn diese anderen Seiten den Header setzen.
- Wenn die erste Seite von einem Ursprung den Header setzt und origin-gebunden gemacht wird, werden alle anderen Seiten von diesem Ursprung origin-gebunden sein, unabhängig davon, ob sie darum bitten oder nicht.
Um ein solches unvorhersehbares Verhalten zu vermeiden, sollten Sie diesen Header entweder für alle Seiten von einem bestimmten Ursprung setzen oder für keine.
Beispiele
Origin-Agent-Cluster: ?1
Spezifikationen
Specification |
---|
HTML # origin-agent-cluster |
Browser-Kompatibilität
BCD tables only load in the browser