ПРИЛОЖЕНИЕ А. Требования к заголовку User-Agent
Информации заголовка User-Agent формируется приложением в виде строки, состоящей из компонентов, описывающих параметры устройства, операционной системы и приложения (Таблица 179). Строка имеет следующую структуру:
(%OS% %VERSION_OS%; %DEVICE% %DEVICE_VERSION%) %APPLICATION%/%APPLICATION_VERSION%.
При формировании строки необходимо учитывать следующий синтаксис:
- вся информация об ОС и устройстве заключается в круглые скобки;
- внутри скобок после ОС и её версии ставится точка с запятой с пробелом;
- модель устройства и номер сборки разделяются одним пробелом;
- между закрывающей скобкой и именем клиентского приложения — один пробел;
- имя приложения и его версия разделяются косой чертой "/".
Компонент %DEVICE_VERSION% используется только для устройств под управлением RosaMobile (смартфоны R-Phone). В этом случае шаблон строки принимает такой вид:
(RosaMobile %VERSION_OS%; RPhone Build/%BUILD_NUMBER%) %APPLICATION%/%APPLICATION_VERSION%.
Например:
(RosaMobile 3.0.0.0; RPhone Build/10.20.30.40) RosaMessenger/0.6.18
Для RosaOS %DEVICE_VERSION% опускается. Соответственно, шаблон будет таким:
(RosaOS %VERSION_OS%; %DEVICE%) %APPLICATION%/%APPLICATION_VERSION%.
Например:
(RosaOS 10.9.4.35; Macintosh) RosaId/1.2.0.0
Валидация со стороны Сервиса
Росa ID проверяет информацию заголовка User-Agent по следующим правилам:
- наличие обязательных компонентов (ОС, версия ОС, устройство, приложение, версия приложения);
- соответствие %OS% значению RosaOS или RosaMobile (регистр важен);
- наличие точки с запятой с пробелом между %VERSION_OS% и %DEVICE%;
- для RosaMobile — наличие Build/X.Y.Z.W после модели устройства;
- для RosaOS — отсутствие Build после модели устройства;
- косая черта между именем приложения и версией приложения.
Если информация заголовка не соответствует формату — устройство отображается в интерфейсе как «Неизвестное устройство» с пометкой «Некорректный User-Agent».
Рекомендации разработчикам
Во избежание ошибок формирования строки заголовка рекомендуется придерживаться следующих правил:
- не применяйте в заголовке статическую строку (например, curl/7.68.0);
- не добавляйте лишних пробелов и символов перевода строки;
- при обновлении версии приложения обязательно меняйте %APPLICATION_VERSION%;
- для RosaMobile всегда передавайте актуальный номер сборки прошивки в формате Build/X.Y.Z.W;
- для RosaOS не добавляйте Build — передавайте только модель устройства;
- перед отправкой запроса с новым заголовком проверьте работу сервиса на одном из корректных примеров.