Глоссарий
User-Agent Client Hints (подсказки клиента)
User-Agent Client Hints это заголовки запроса и объект для сценариев, которыми браузер сообщает о себе отдельными полями.
Как сайт их спрашивает
Три поля едут с каждым вашим запросом, а подробные отдаются только тому сайту, который о них спросил отдельно.
- 1
Три идут сами
Список марок, признак мобильного и имя платформы уходят с любым запросом и без всякой просьбы.
- 2
Сайт называет остальное
В ответе сайта перечислены нужные ему добавочные поля, и браузер дописывает их в следующие запросы.
- 3
Сценарий спрашивает прямо
Страница просит подробные поля одним вызовом и читает их в ответе.
Ваш браузер прямо сейчас
Панель читает в вашем браузере на этой странице строку браузера, платформу и основной язык.
Подсказки несут те же сведения, разложенные по полям, и ровно поэтому две дороги сверяют друг с другом.
Ваша машина прямо сейчас
- Вид одной строкой
- измеряем на вашей машине
- Платформа
- измеряем на вашей машине
- Основной язык
- измеряем на вашей машине
Прочитано в вашем браузере и показано здесь. Никуда не отправляется.
Даровые поля и поля по просьбе
В этом делении весь замысел: малое отдаётся всякому, а подробности только тому сайту, который о них спросил.
| Поле | Когда уходит |
|---|---|
| Список марок и версий | С каждым запросом, только старшие числа |
| Признак мобильного и имя платформы | С каждым запросом |
| Точная сборка, архитектура, разрядность | Только после просьбы сайта |
| Модель аппарата и форма | Только после просьбы, и модель заполнена у телефона |
Почему поля обязаны сходиться
Каждое поле здесь выводится из того же зерна профиля, что строка браузера, платформа и железо, поэтому разойтись двум из них негде.
Поля версии берутся от того движка, который откроет профиль, а архитектура следует за видеокартой, которую профиль называет.
Один выпуск везде
Список марок, список полных версий и сама строка браузера называют один и тот же выпуск.
Процессор под видеокарту
Профиль с чипом Apple говорит здесь arm, а профиль с видеокартой для Windows говорит x86.
Ничего лишнего
Подробные поля отвечают тому, кто о них спросил, и не уходят к тому, кто не спрашивал ни о чём.
Часто путают с этим
Строка браузера
Старая запись одной строкой: те же сведения в одном тексте, и её нарочно держат короткой.
navigator.platform
Значение для сценариев про семейство системы, и сайт читает его рядом с полем платформы отсюда.
Запрос разрешения
Здесь вас никто не спрашивает, и окна не появляется, когда сайт собирает даровые поля.
Как проверить свои
Панель выше читает ваш собственный браузер, и со страницы не уходит ни одного запроса наружу.
Внутри профиля самопроверка отпечатка просит подробные поля так же, как их просит сайт, и сверяет каждый ответ с профилем.
Чего это не делает
- Это не прячет платформу. Задача не в том, чтобы отказаться отвечать, а в том, чтобы ответить так, как ответила бы машина, которую описывает профиль.
- Это не заполняет модель на рабочем столе. Настоящий Chrome оставляет там пустоту, поэтому любое значение в этом поле стало бы приметой само по себе.
- Это не мешает сайту спросить больше. Сайт вправе запросить каждое подробное поле, а браузер, отказавший во всём наборе, встречается реже любого ответа.
- Это не разводит два профиля само по себе. Видеокарту, шрифты, ядра и список языков читают рядом с этими полями, и весят они больше, чем любое из них.
Проверить
Всё написанное выше взято из файла, который можно открыть у себя.
- Где выводится каждое поле подсказок
- packages/shared/src/index.js
- Исходящие заголовки следуют за профилем
- apps/desktop/src/main/main.js
- Строка, марки и полная версия об одном выпуске
- apps/desktop/test/fingerprint-consistency.js
- Модель телефона называется только здесь
- apps/desktop/test/mobile-really-mobile.js
Вопросы
- Подсказки заменяют строку браузера?
- Они забирают подробности себе. Строка браузера остаётся короткой ради старых сценариев, а точный выпуск теперь едет этими полями, и только по просьбе сайта.
- Может ли сайт прочитать их, не спросив меня?
- Три даровых поля едут с каждым запросом, и никакого окна с вопросом не будет. Подробные требуют просьбы, и сайт просит браузер, а не вас.
- Что будет, если строка и подсказки разойдутся?
- Одно чтение опровергает другое, а противоречие весит больше любого отдельного значения. Ради этой сверки весь набор и выводится из одного зерна.
- Называют ли подсказки точную сборку?
- Да, тому сайту, который спросил. И это сборка того движка, который в самом деле нарисует страницу: её узнают у самого движка, а не берут из настройки.
- Называет ли телефон свою модель?
- Этими полями да. Строку браузера заморозили годы назад, поэтому подсказки единственное место, где настоящий аппарат называет себя по имени.
Спросите у профиля то, что спросит сайт
Самопроверка идёт внутри профиля и показывает все 29 замеров, и зелёные, и красные.