Перейти к содержимому

Глоссарий

User-Agent Client Hints (подсказки клиента)

Сайт просит те поля, которые ему нужны, и браузер отвечает на каждое по отдельности. Именно поэтому старую строку браузера теперь не принимают на веру, а сверяют с этими полями.

User-Agent Client Hints это заголовки запроса и объект для сценариев, которыми браузер сообщает о себе отдельными полями.

Как сайт их спрашивает

Три поля едут с каждым вашим запросом, а подробные отдаются только тому сайту, который о них спросил отдельно.

  1. 1

    Три идут сами

    Список марок, признак мобильного и имя платформы уходят с любым запросом и без всякой просьбы.

  2. 2

    Сайт называет остальное

    В ответе сайта перечислены нужные ему добавочные поля, и браузер дописывает их в следующие запросы.

  3. 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 замеров, и зелёные, и красные.