#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, опубликуйте фактический файл захвата. Контекст имеет значение.