Заголовки: Origin-Agent-Cluster
Заголовок Origin-Agent-Cluster
HTTP-заголовок Origin-Agent-Cluster ответа используется для запроса о том, чтобы связанный Document был помещён в агентный кластер, привязанный к источнику. Это означает, что ресурсы операционной системы (например, процесс операционной системы), используемые для обработки документа, должны совместно использоваться только с другими документами из того же источника.
В результате ресурсозатратный документ с меньшей вероятностью снизит производительность документов из других источников.
| Тип заголовка | Заголовок ответа |
|---|
Синтаксис
Origin-Agent-Cluster: <boolean>
Директивы
<boolean>-
?1означает, что связанныйDocumentдолжен быть помещён в агентный кластер, привязанный к источнику. Значения, отличные от?1, игнорируются (например, структурированное поле?0для значения false).
Описание
Современные веб-браузеры имеют многопроцессную архитектуру, в которой страницы из разных источников могут работать в разных процессах операционной системы. Это важно для производительности: ресурсозатратная страница не будет так сильно влиять на другие открытые пользователем страницы.
Однако браузеры, как правило, не могут запускать страницы с одного сайта, но из разных источников, в отдельных процессах из-за некоторых API DOM, зависящих от взаимодействия между страницами с одного сайта, но из разных источников. Например, по умолчанию страницы со следующих двух источников будут совместно использовать одни и те же ресурсы операционной системы:
https://apples.example.org https://oranges.example.org
Установив заголовок Origin-Agent-Cluster, страница может запросить у браузера выделение для этого источника отдельных ресурсов, которые не будут совместно использоваться с другими источниками.
Браузер не обязан выполнять этот запрос. Если он его выполняет, свойство Window.originAgentCluster возвращает true, а окно не может выполнять следующие действия, которые зависят от взаимодействия между страницами с одного сайта, но из разных источников:
- Использовать
Document.domain. - Отправлять объекты
WebAssembly.Moduleдругим страницам с одного сайта, но из разных источников, используяpostMessage(). - Отправлять объекты
SharedArrayBufferилиWebAssembly.Memoryдругим страницам с одного сайта, но из разных источников.
Агентные кластеры, привязанные к источнику, не следует считать средством обеспечения безопасности: браузеры могут игнорировать запрос по разным причинам или реализовать его так, чтобы он не обеспечивал защиту памяти (например, используя отдельные потоки вместо отдельных процессов). Эта функция лишь подсказывает, что пользовательский опыт улучшится, если для данного источника выделить отдельные ресурсы.
Например, предположим, что на сайте есть страница из одного источника, в которую встроен iframe с того же сайта, но из другого источника, где запускается ресурсоёмкая игра. Установив Origin-Agent-Cluster для документа в iframe, можно предотвратить влияние игры на производительность основной страницы.
Браузер обеспечит, чтобы все страницы заданного источника либо были привязаны к источнику, либо нет. Это означает следующее:
- Если первая страница из источника не устанавливает заголовок, другие страницы из этого источника не будут привязаны к источнику, даже если они устанавливают этот заголовок.
- Если первая страница из источника устанавливает заголовок и становится привязанной к источнику, все остальные страницы из этого источника также будут привязаны к источнику, независимо от того, запрашивают ли они это.
Чтобы избежать такой непредсказуемой ситуации, следует устанавливать этот заголовок для всех страниц заданного источника или не устанавливать его ни для одной из них.
Примеры
Origin-Agent-Cluster: ?1
Спецификации
| Спецификация |
|---|
| HTML> # origin-agent-cluster> |
Совместимость с браузерами
| Компьютеры | Мобильные устройства | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome для Android | Firefox для Android | Opera для Android | Safari для iOS | Samsung Internet | WebView для Android | WebView для iOS | |
Origin-Agent-Cluster |
90 | 90 | 138 | 76 | Нет | 90 | 138 | 64 | Нет | 15.0 | 90 | Нет |
См. также
Window.originAgentCluster- Агентные кластеры и совместное использование памяти в разделе Модель выполнения JavaScript
- Запрос изоляции производительности с помощью заголовка Origin-Agent-Cluster на web.dev
© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/Origin-Agent-Cluster