• Записи 162
  • Теги 66
  • Комментарии 330

Компьютерное

Заголовки Sec-CH-UA-Mobile и HTTP_SEC_CH_UA_PLATFORM

Несколько лет назад я писал заметку о том, как определить мобильный броузер с помощью регулярного выражения для User Agent. Однако в современных броузерах на основе Chrome появился дополнительный и более простой механизм: при обращении к сайту эти броузеры передают специальные заголовки Sec-CH-UA-Mobile и Sec-CH-UA-Platform. В первом приходит значение ?0 для desktop-версии и ?1 для мобильной, во втором — платформа в виде одной из строк: "Android", "Chrome OS", "Chromium OS", "iOS", "Linux", "macOS", "Windows" или "Unknown".
В PHP эти заголовки можно получить как $_SERVER['HTTP_SEC_CH_UA_MOBILE'] и $_SERVER['HTTP_SEC_CH_UA_PLATFORM'] соответственно. (Буквы должны быть именно заглавными.)
Данный механизм поддерживается с 89 версии Chrome, но всё ещё имеет статус экспериментального. В Firefox и Safari поддержка на данный момент, по данным CanIUse, отсутствует.

2 комментария:

MadTechGuy
0

Всё это, конечно, хорошо, но что-то мне это напоминает…



Просто браузеры, которые эти заголовки не поддерживают, никуда не делись и их всё ещё нужно определять.

4X_Pro
0

Согласен, формализовать структуру User Agent и передавать признак мобильности в нём было бы лучше. Но это была бы поломка обратной совместимости...

Написать комментарий


Задать вопрос