Почему иногда вместо сайтов мы видим разные ошибки сервера
easy

Почему иногда вместо сайтов мы видим разные ошибки сервера

Потому что проблемы бывают не только у людей

Когда мы в браузере открываем любой сайт, браузер начинает отправлять запросы на сервер. Сервер получает эти запросы и начинает свою работу: обрабатывает данные, готовит контент, отправляет его в браузер или делает что-то ещё. 

В процессе общения с сервером браузер получает от него короткие сообщения — коды состояния HTTP (HTTP status code). Если всё в порядке, сервер отправляет статус «200» — мол, всё хорошо, работаем дальше. Но иногда сервер не может довести дело до конца и отдать нам нужную страницу. В этом случае он сообщает браузеру об ошибке — и вместо сайта мы видим служебную страницу с кодом этой ошибки. Сегодня расскажем про самые часто встречающиеся такие ошибки и про то, что с ними можно сделать.

История статусов и ошибок

Если зайти в инструменты разработчика в браузере Chrome и перейти во вкладку «Сеть» (Network), то можно увидеть все этапы обработки запроса сервером и посмотреть на статусы на каждом этапе:

Почему иногда вместо сайтов мы видим разные ошибки сервера

Сейчас всё хорошо — на каждом этапе сервер сообщает браузеру, что всё обработалось как нужно, без ошибок. Для этого он отправляет статус «200» — так браузер понимает, что очередной этап загрузки и обработки страницы прошёл штатно.

Но если мы ошибёмся в адресе, браузер сразу получит от сервера статус «404» — это значит, что такой страницы нет на сервере. При этом остальные элементы загружаются успешно — скрипты, стили и картинки:

Почему иногда вместо сайтов мы видим разные ошибки сервера

Какие бывают коды статуса

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

1xx: информационные статусы. Указывают на то, что сервер получил запрос и продолжает процесс. Эти коды состояния выдаются сервером только на время обработки запроса, то есть запрос ими не завершается. Чаще всего в логи такие статусы не попадают, но если что — их тоже можно посмотреть.

2xx: статусы после успешного действия. Они означают, что запрос успешно обработан: нашлась картинка, загрузился скрипт, подключились стили и так далее.

3xx: статусы перенаправлений. Такие статусы говорят о необходимости или возможности перенаправления запроса, например, на другую страницу. Обычно это значит, что сервер понял запрос, с ним всё хорошо, но нужны дополнительные действия для завершения запроса.

4хх и 5хх: коды ошибок. Такие коды — это способ сервера сообщить о какой-то проблеме. Коды 4xx показывают ошибку на стороне клиента — неправильный адрес, некорректный запрос или недостаточно данных для обработки запроса. Коды 5xx означают ошибку на стороне сервера — с запросом может быть всё в порядке, но сервер по каким-то внутренним причинам не может сделать то, что нужно.

Теперь расскажем подробно про самые распространённые ошибки сервера.

400 Bad Request: неправильный запрос

Что означает: клиент отправляет некорректный запрос, который сервер не может его понять и обработать.

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

400 Bad Request: неправильный запрос

✅ Что можно сделать:

  • проверить, нет ли в адресной строке опечатки;
  • зайти в настройки браузера, очистить кэш и куки;
  • если вы загружаете файл, сжать его и повторить загрузку;
  • проверить настройки файрвола или антивируса.

Что такое куки и почему без них ничего не работает

Иногда такая ошибка может возникнуть и из-за неправильной работы сайта или приложения. Здесь уже нужно разбираться администратору сайта, в чём причина и как это починить.

401 Unauthorized: для доступа к запрашиваемому ресурсу требуется аутентификация

Что означает: для доступа к запрашиваемому ресурсу требуется аутентификация, а клиент не предоставил нужные данные. Обычно это случается, когда пользователь не ввёл нужные логин и пароль.

401 Unauthorized: для доступа к запрашиваемому ресурсу требуется аутентификация

✅ Что можно сделать:

  • проверить права доступа и убедиться, что учётная запись активна;
  • проверить правильность логина и пароля;
  • перезайти в учётную запись;
  • проверить настройки браузера: иногда блокировка куки-файлов может вызывать эту ошибку;

403 Forbidden: доступ к запрошенному ресурсу запрещён

Что означает: сервер принял запрос, но отказался предоставить доступ к ресурсу. 

Причин может быть несколько: проблемы с авторизацией пользователя, неправильная настройка сайта или блокировка со стороны провайдера. А ещё бывает, что страница в принципе закрыта для всех пользователей и что такая ошибка будет у всех:

403 Forbidden: доступ к запрошенному ресурсу запрещён

✅ Что можно сделать:

  • проверить свои права доступа;
  • зайти в настройки браузера, очистить кэш и куки;
  • зайти на сайт с другого устройства;
  • если вы работаете в корпоративной сети — отключить или, наоборот, включить VPN.

404 Not Found: сервер не нашёл страницу по указанному адресу

Что означает: сервер ничего не может найти по адресу, указанному в запросе. 

Чаще всего это возникает из-за опечатки в строке браузера, перемещённой или удалённой страницы. Если администратор сайта не настраивал переадресацию для такой ошибки, то мы увидим что-то вроде этого:

404 Not Found: сервер не нашёл страницу по указанному адресу

Но большинство сайтов умеют обрабатывать такую ситуацию и показывают вместо этого собственную страницу с сообщением об ошибке. Для этого сервер переадресовывает пользователя на специальную страницу на сайте, где предлагает ему другие материалы:

Страница с ошибкой «404» в «Коде»
Страница с ошибкой «404» в «Коде»

✅ Что можно сделать:

  • проверить правильность URL;
  • обновить страницу;
  • использовать поиск по сайту;
  • очистить кэш браузера;
  • сообщить о проблеме владельцу сайта.

500 Internal server error: внутренняя ошибка сервера

Что означает: сервер не может обработать запрос из-за внутренних неполадок. 

Это одна из самых неприятных ошибок: сервер может быть неправильно настроен, есть ошибки в коде серверного приложения, проблемы с базой данных или разработчики поменяли настройки сервера. Ещё одна причина — проблемы с интернетом, когда запрос просто не дошёл до сервера.

500 Internal server error: внутренняя ошибка сервера

Что можно сделать: ничего, такую ошибку исправляют администраторы или разработчики сайта. Ну, или подождать, пока появится интернет, если его нет.

502 Bad gateway: сервер не смог обработать запрос по внешним причинам

Что означает: сервер, которому браузер отправил запрос, получил неверный ответ (или вообще не получил) от других серверов или служб. 

Причин может быть много: неверный ответ DNS-сервера, проблемы с внутренней сетью, неправильная настройка сервера или перегрузка запросами. Если на сайте большой наплыв посетителей или он подвергается DDoS-атаке и не справляется с нагрузкой, мы видим ошибку 502.

502 Bad gateway: сервер не смог обработать запрос по внешним причинам

✅ Что можно сделать:

  • обновить страницу или зайти на страницу позже;
  • открыть сайт в другом браузере;
  • очистить кэш браузера.

Если это не помогло — остаётся только ждать, пока сайт заработает снова.

503 Service Temporarily Unavailable: сервис временно недоступен

Что означает: по техническим причинам сервер не готов сейчас обрабатывать запросы. 

Ошибка чаще всего возникает из-за перегрузки сервера, его обслуживания или обновления, проблем с конфигурацией, нехватки памяти и низкой пропускной способности сети. 

503 Service Temporarily Unavailable: сервис временно недоступен

❌ Что можно сделать: подождать, пока сервер снова начнёт отвечать на запросы. Иногда помогает зайти с другого браузера, но такое случается редко.

504 Gateway timeout: сервер не ответил в течение заданного времени

Что означает: сервер вовремя не ответил на запрос, и браузер устал его ждать. Как и ошибка 502, это обычно указывает на проблемы связи между серверами.

Причин у такой ошибки может быть много: сервер завис на какое-то время, слишком много посетителей, большая очередь обработки запросов или ошибка связи с промежуточным сервером.

504 Gateway timeout: сервер не ответил в течение заданного времени

✅ Что можно сделать:

  • обновить страницу или зайти позже;
  • открыть сайт в другом браузере;
  • очистить кэш;
  • перезагрузить роутер или модем.

Что дальше

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

Текст:

Кристина Тульцева

Редактор:

Михаил Полянин

Обложка:

Алексей Сухов

Корректор:

Ирина Михеева

Вёрстка:

Мария Дронова

Соцсети:

Юлия Зубарева

Курс «C++ для бэкенда»
Если интересно делать быстрые высоконагруженные системы, посмотрите на программу курса «Яндекс Практикума». Понятная теория, тренажеры, поддержка ревьюеров и обучение в группе, всё как надо.
Посмотреть
Курс «C++ для бэкенда»
Курс «C++ для бэкенда»
Курс «C++ для бэкенда»
Курс «C++ для бэкенда»
Получите ИТ-профессию
В «Яндекс Практикуме» можно стать разработчиком, тестировщиком, аналитиком и менеджером цифровых продуктов. Первая часть обучения всегда бесплатная, чтобы попробовать и найти то, что вам по душе. Дальше — программы трудоустройства.
Начать карьеру в ИТ
Получите ИТ-профессию Получите ИТ-профессию Получите ИТ-профессию Получите ИТ-профессию
Еще по теме
easy