«Пользовательский агент» - это клиент, отправляющий HTTP-запросы на HTTP-сервер.В большинстве случаев пользовательским агентом является веб-браузер, но этот термин является более общим и включает такие вещи, как автоматизированные сценарии.
Главное недоразумение в вашем вопросе заключается в том, что перенаправление не "происходит на уровне сервера».Вот что происходит:
- Пользовательский агент отправляет HTTP-запрос на сервер для URL.
- Сервер отвечает HTTP-ответом, в строке «status» установлено значение«301» (или один из других «перенаправленных» статусов) и заголовок «Location», содержащий новый URL.
- Пользовательский агент , вероятно, отправляет второй запрос на сервер,для нового URL.
- Сервер получает второй запрос и не может узнать, был ли он связан с первым запросом .
Заголовок "referer" (опечатка)является историческим, и теперь официально «правильным») является лишь частью информации, отправляемой пользовательским агентом с каждым запросом .(Важно отметить, что, как и все в запросе, ему нельзя доверять для каких-либо целей безопасности, потому что кто-то может написать запрос с любым значением, которое он хочет.)
Раздел RFC в заголовке Referer не очень точно определяет его поведение, и я не могу найти там ссылки на то, как оно должно быть заполнено после ответа перенаправления.Таким образом, разные пользовательские агенты могут вести себя по-разному, и вам необходимо проверить их в разных браузерах.