Когда браузер устанавливает «реферер» в заголовке HTTP-запроса? - PullRequest
4 голосов
/ 20 июля 2011

У меня есть страница входа, и пользователи из разных доменов перенаправляются на эту страницу для целей единого входа.Я использую поле HTTP-заголовка реферера, чтобы узнать, откуда пришел пользователь, поэтому при успешном входе в систему я возвращаю его обратно в его исходный домен.Но иногда мой реферер не установлен, а иногда - установлен.Почему?

Ответы [ 2 ]

11 голосов
/ 20 июля 2011

Пользователи могут перейти на вашу страницу разными способами:

  1. Введя URL-адрес своей страницы, прямо в адресную строку браузера
  2. Нажав ссылку на свойсайт с другого сайта
  3. Перезагружая текущую страницу
  4. Отправляя форму на свой сайт (отправляя запрос POST обратно на ваш сайт)
  5. Перемещая кнопки назад / впередвашего браузера.
  6. Переадресация через предыдущую страницу на текущую страницу.

Теперь браузеры действительно отличаются тем, как и когда они устанавливают поле заголовка реферера.Но, как правило, вы можете быть уверены, что при нажатии на ссылку или при отправке формы (после запроса) они устанавливают поле реферера.Кроме того, если вы зашли на текущую страницу с помощью перенаправления или ссылки, браузер по-прежнему сохраняет заголовок реферера на F5 (перезагрузка страницы).

Если вы видите, что поле вашего реферера пустое, это потому, что кто-то знает ваш логинURL страницы и вводит его непосредственно в адресную строку, или кто-то добавил его в закладки, поэтому отправляет запрос GET.

Как правило, вы не всегда должны ожидать поле реферера, потому что оно находится вне вашего контроля.Вы должны использовать куки или строки запроса, потому что они находятся под вашим контролем.

4 голосов
/ 20 июля 2011

Другое дело, что для некоторых пользователей опция обозревателя может быть отключена в их браузерах как часть настроек безопасности браузера.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...