ПРИЛОЖЕНИЕ А. Требования к заголовку 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 — передавайте только модель устройства;
  • перед отправкой запроса с новым заголовком проверьте работу сервиса на одном из корректных примеров.