powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / 302 редирект на 301 редирект => сервер не найден (браузер 301 редирект не выполняет)
6 сообщений из 6, страница 1 из 1
302 редирект на 301 редирект => сервер не найден (браузер 301 редирект не выполняет)
    #39738053
Cyrax_02
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что-то не пойму, почему 302 редирект на 301 редирект приводит к тому, что браузер:
1) 301 редирект не выполняет
2) отображает сообщение "Сервер не найден"

Проверил в отладчике - выполняется только 1 запрос и получается ответ 302.
В location 302 ответа указан корректный URL, который возвращает 301 ответ.

Например: https://versia.ru/click/?http://site.ru/
Здесь страница https://versia.ru/click/ возвращает 302 редирект на URL, указанный в параметре ( http://site.ru/)
Если URL http://site.ru/ будет возвращать 200 ответ, то никаких проблем. Но если URL http://site.ru/ будет возвращать 301 редирект, то от браузера получим сообщение "Сервер не найден".
...
Рейтинг: 0 / 0
302 редирект на 301 редирект => сервер не найден (браузер 301 редирект не выполняет)
    #39738056
Cyrax_02
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Firefox
Здесь какая-то козявка скрывается. Как браузер может по-разному реагировать на полученный 302 ответ в зависимости от URL, указанного в location ? Только если он выполнит запрос на этот URL (указанный в location). Тогда почему браузер в отладчике (на вкладке сеть) не отображает этот (второй) запрос ? Галки "Непрерывные логи" и "Отключить кэш" включены

Пример: https://versia.ru/click/?http://site.ru/
Если http://site.ru/ сразу будет отдавать 200 ответ, то всё нормально.

Но если он отдаст 301 ответ на URL http://www.site.ru/, то браузер:
1) 301 редирект не выполнит (в отладчике на вкладке "Сеть" будет показан только один запрос, на который получен 302 ответ)
2) покажет сообщение "Сервер не найден"

Так всё-таки, 301 редирект выполняется или нет ? Судя изложенной выше логике должен выполняться. Но в отладчике не отображается (и показывается сообщение "Сервер не найден"). Бред какой-то...
...
Рейтинг: 0 / 0
302 редирект на 301 редирект => сервер не найден (браузер 301 редирект не выполняет)
    #39738069
Cyrax_02
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Единственное объяснение, которое приходит в голову:
Современные браузеры при выполнении 301 редиректов (почему только для 301 ?) добавляют в заголовки запроса Upgrade-Insecure-Requests: 1 , что заставляет выполнять 301 редирект по протоколу https. И если он не поддерживается (как в сабжевом случае), то:
1) этот запрос (на URL, указанный в location 301 ответа) в отладчике не отображается
2) браузер отображает сообщение, что сервер не найден

Воспроизвёл проблему в Chrome :
Очищают кэш/историю, загружаю сайт http://site.ru (который возвращает 301 редирект на http://www.site.ru).
В ответ в отладчике браузера отображается красным цветом "site.ru", Request URL = http://site.ru/ и status=failed. А в Request Headers присутствует заголовок Upgrade-Insecure-Requests: 1 . Отсюда делаем вывод, что Chrome для 301 редиректов автоматически добавляет Upgrade-Insecure-Requests: 1. Ну и аналогично, судя по всему, поступает Firefox.

Сам сайт при отдаче 301 ответа этот заголовок ( Upgrade-Insecure-Requests: 1 ) не отпрявляет.
Значит, его добавляют браузеры. Но почему только при выполнении 301 редиректа ?
...
Рейтинг: 0 / 0
302 редирект на 301 редирект => сервер не найден (браузер 301 редирект не выполняет)
    #39738074
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. Обычно "Сервер не найден" означает проблему с ДНС или с неправильным доменным именем. В четырех буквах ошибиться сложно, но тем не менее, проверить доменные имена есть смысл. Желательно копипастом доменного имени из заголовка Location.

2. Современные браузеры в этом смысле мало информативны. Предпочитаю для подобных вещей использовать wget с ключиком -d.
...
Рейтинг: 0 / 0
302 редирект на 301 редирект => сервер не найден (браузер 301 редирект не выполняет)
    #39738089
Cyrax_02
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор1. Обычно "Сервер не найден" означает проблему с ДНС или с неправильным доменным именем. В четырех буквах ошибиться сложно, но тем не менее, проверить доменные имена есть смысл. Желательно копипастом доменного имени из заголовка Location.
2. Современные браузеры в этом смысле мало информативны. Предпочитаю для подобных вещей использовать wget с ключиком -d.
В обычных (классических) ситуациях - да. Но в "необычных" (неклассических) ситуациях браузеры, к сожалению, ведут себя (отображают) сообщения такие же, как в классических.

Проблем с DNS нет. Всё проверено. Проблема локализована до следующего простого эксперимента:
Берём сайт, который работает только по http. Очищаем кэш/историю браузера (на всякий случай). Далее в адресной строке набираем URL этого сайта, но с https. Получаем ту самую неинформативную реакцию браузера ("Сервер не найден").

Т.е. в описанной в сабже ситуации URL, который браузер получает в поле location вместе с 301 ответом, браузер запрашивает принудительно по протоколу https (и этот неудачный запрос в отладчике не отображает, т.е. откатывает его)

Вопрос в том, почему именно по https (и только по https) ? если 301 ответ не содержит никаких специальных директив, заставляющих выполнять редирект строго по https (в частности, Upgrade-Insecure-Requests: 1 ). Напрашивается единственный вывод - браузер самостоятельно выполняет этот запрос (редирект) в режиме Upgrade-Insecure-Requests: 1
...
Рейтинг: 0 / 0
302 редирект на 301 редирект => сервер не найден (браузер 301 редирект не выполняет)
    #39738121
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cyrax_02никаких специальных директив, заставляющих выполнять редирект строго по httpsПредположу, что браузер ранее уже запомнил этот сайт и использует механизм HSTS для принудительного применения HTTPS на данном сайте.

Попав однажды в список HSTS браузера, сайт не удаляется оттуда очисткой кэша/истории или какими-то другими внятными инструментами. Удалить можно более шаманскими действиями, в ФФ когда-то правился файл со списком сайтов, сейчас не в курсе.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / 302 редирект на 301 редирект => сервер не найден (браузер 301 редирект не выполняет)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]