Пользовательский пользовательский агент не отображается в переменной _SERVER

#php #apache

#php #apache

Вопрос:

В моем Java-приложении я использую пользовательский пользовательский агент в сообщении http post. Идея заключается в том, чтобы немного изменить одно сообщение post на основе пользовательского агента.

На стороне сервера я использую PHP, и оказывается, что в массиве $ _SERVER нет набора HTTP_USER_AGENT. Я вижу, что он установлен, когда я отправляю обычное сообщение GET из браузера в php-код. Что вызывает недоумение, так это то, что пользовательский агент фактически устанавливается в моем Java-коде, и я могу видеть это с помощью tcpdump. Потратив много времени, я выяснил, что пользовательский агент на самом деле отправлен правильно, и я мог бы получить его, используя функцию apache_request_headers () в моем php-коде. Хотя это решает мою проблему, я действительно хочу понять, что происходит. Кто-нибудь еще сталкивался с этой проблемой? Кто-нибудь может объяснить, почему я это вижу? Я новичок в PHP.

РЕДАКТИРОВАТЬ: Вот поле, специфичное для пользовательского агента, скопированное и вставленное из wireshark на стороне клиента.

 User-Agent: Android app1.0rn
  

Спасибо,

P

Комментарии:

1. Можете ли вы опубликовать свой захват пакета? Я подозреваю, что пользовательский агент на самом деле настроен неправильно.

2. @Brad — Я бы сделал это, как только подхожу к своему компьютеру, но почему apache_request_headers () показывает это?

3. @user220201, apache_request_headers() покажет все заголовки запроса. Значение в $_SERVER['HTTP_USER_AGENT'] на самом деле является проанализированной версией. Другими словами, если переменная в $_SERVER не установлена, то заголовок вашего запроса с помощью пользовательского агента не был проанализирован, что означает, что в названии вашего заголовка, вероятно, опечатка.

4. @Brad — Я вставил заголовок пользовательского агента, полученный с помощью wireshark выше.

5. @user220201, опубликуйте фактический файл захвата. Контекст имеет значение.