|
|
|
302 редирект на 301 редирект => сервер не найден (браузер 301 редирект не выполняет)
|
|||
|---|---|---|---|
|
#18+
Что-то не пойму, почему 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 редирект, то от браузера получим сообщение "Сервер не найден". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2018, 21:50 |
|
||
|
302 редирект на 301 редирект => сервер не найден (браузер 301 редирект не выполняет)
|
|||
|---|---|---|---|
|
#18+
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 редирект выполняется или нет ? Судя изложенной выше логике должен выполняться. Но в отладчике не отображается (и показывается сообщение "Сервер не найден"). Бред какой-то... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2018, 21:58 |
|
||
|
302 редирект на 301 редирект => сервер не найден (браузер 301 редирект не выполняет)
|
|||
|---|---|---|---|
|
#18+
Единственное объяснение, которое приходит в голову: Современные браузеры при выполнении 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 редиректа ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2018, 23:01 |
|
||
|
302 редирект на 301 редирект => сервер не найден (браузер 301 редирект не выполняет)
|
|||
|---|---|---|---|
|
#18+
1. Обычно "Сервер не найден" означает проблему с ДНС или с неправильным доменным именем. В четырех буквах ошибиться сложно, но тем не менее, проверить доменные имена есть смысл. Желательно копипастом доменного имени из заголовка Location. 2. Современные браузеры в этом смысле мало информативны. Предпочитаю для подобных вещей использовать wget с ключиком -d. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2018, 23:24 |
|
||
|
302 редирект на 301 редирект => сервер не найден (браузер 301 редирект не выполняет)
|
|||
|---|---|---|---|
|
#18+
автор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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.11.2018, 01:49 |
|
||
|
302 редирект на 301 редирект => сервер не найден (браузер 301 редирект не выполняет)
|
|||
|---|---|---|---|
|
#18+
Cyrax_02никаких специальных директив, заставляющих выполнять редирект строго по httpsПредположу, что браузер ранее уже запомнил этот сайт и использует механизм HSTS для принудительного применения HTTPS на данном сайте. Попав однажды в список HSTS браузера, сайт не удаляется оттуда очисткой кэша/истории или какими-то другими внятными инструментами. Удалить можно более шаманскими действиями, в ФФ когда-то правился файл со списком сайтов, сейчас не в курсе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.11.2018, 09:03 |
|
||
|
|

start [/forum/topic.php?fid=22&fpage=22&tid=1443963]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
45ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
42ms |
get tp. blocked users: |
1ms |
| others: | 236ms |
| total: | 365ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...