Когда мы в браузере открываем любой сайт, браузер начинает отправлять запросы на сервер. Сервер получает эти запросы и начинает свою работу: обрабатывает данные, готовит контент, отправляет его в браузер или делает что-то ещё.
В процессе общения с сервером браузер получает от него короткие сообщения — коды состояния HTTP (HTTP status code). Если всё в порядке, сервер отправляет статус «200» — мол, всё хорошо, работаем дальше. Но иногда сервер не может довести дело до конца и отдать нам нужную страницу. В этом случае он сообщает браузеру об ошибке — и вместо сайта мы видим служебную страницу с кодом этой ошибки. Сегодня расскажем про самые часто встречающиеся такие ошибки и про то, что с ними можно сделать.
История статусов и ошибок
Если зайти в инструменты разработчика в браузере Chrome и перейти во вкладку «Сеть» (Network), то можно увидеть все этапы обработки запроса сервером и посмотреть на статусы на каждом этапе:
Сейчас всё хорошо — на каждом этапе сервер сообщает браузеру, что всё обработалось как нужно, без ошибок. Для этого он отправляет статус «200» — так браузер понимает, что очередной этап загрузки и обработки страницы прошёл штатно.
Но если мы ошибёмся в адресе, браузер сразу получит от сервера статус «404» — это значит, что такой страницы нет на сервере. При этом остальные элементы загружаются успешно — скрипты, стили и картинки:
Какие бывают коды статуса
Коды делятся на пять типов, а различия между ними обозначаются первой цифрой кода.
1xx: информационные статусы. Указывают на то, что сервер получил запрос и продолжает процесс. Эти коды состояния выдаются сервером только на время обработки запроса, то есть запрос ими не завершается. Чаще всего в логи такие статусы не попадают, но если что — их тоже можно посмотреть.
2xx: статусы после успешного действия. Они означают, что запрос успешно обработан: нашлась картинка, загрузился скрипт, подключились стили и так далее.
3xx: статусы перенаправлений. Такие статусы говорят о необходимости или возможности перенаправления запроса, например, на другую страницу. Обычно это значит, что сервер понял запрос, с ним всё хорошо, но нужны дополнительные действия для завершения запроса.
4хх и 5хх: коды ошибок. Такие коды — это способ сервера сообщить о какой-то проблеме. Коды 4xx показывают ошибку на стороне клиента — неправильный адрес, некорректный запрос или недостаточно данных для обработки запроса. Коды 5xx означают ошибку на стороне сервера — с запросом может быть всё в порядке, но сервер по каким-то внутренним причинам не может сделать то, что нужно.
Теперь расскажем подробно про самые распространённые ошибки сервера.
400 Bad Request: неправильный запрос
Что означает: клиент отправляет некорректный запрос, который сервер не может его понять и обработать.
Иногда это происходит из-за опечатки в адресе (если не настроена переадресация на типовую страницу с сообщением об ошибке), устаревших или изменённых куки-файлов, загрузки большого файла, настроек файрвола или даже из-за вируса на устройстве, который меняет запрос к сайту.
✅ Что можно сделать:
- проверить, нет ли в адресной строке опечатки;
- зайти в настройки браузера, очистить кэш и куки;
- если вы загружаете файл, сжать его и повторить загрузку;
- проверить настройки файрвола или антивируса.
Что такое куки и почему без них ничего не работает
Иногда такая ошибка может возникнуть и из-за неправильной работы сайта или приложения. Здесь уже нужно разбираться администратору сайта, в чём причина и как это починить.
401 Unauthorized: для доступа к запрашиваемому ресурсу требуется аутентификация
Что означает: для доступа к запрашиваемому ресурсу требуется аутентификация, а клиент не предоставил нужные данные. Обычно это случается, когда пользователь не ввёл нужные логин и пароль.
✅ Что можно сделать:
- проверить права доступа и убедиться, что учётная запись активна;
- проверить правильность логина и пароля;
- перезайти в учётную запись;
- проверить настройки браузера: иногда блокировка куки-файлов может вызывать эту ошибку;
403 Forbidden: доступ к запрошенному ресурсу запрещён
Что означает: сервер принял запрос, но отказался предоставить доступ к ресурсу.
Причин может быть несколько: проблемы с авторизацией пользователя, неправильная настройка сайта или блокировка со стороны провайдера. А ещё бывает, что страница в принципе закрыта для всех пользователей и что такая ошибка будет у всех:
✅ Что можно сделать:
- проверить свои права доступа;
- зайти в настройки браузера, очистить кэш и куки;
- зайти на сайт с другого устройства;
- если вы работаете в корпоративной сети — отключить или, наоборот, включить VPN.
404 Not Found: сервер не нашёл страницу по указанному адресу
Что означает: сервер ничего не может найти по адресу, указанному в запросе.
Чаще всего это возникает из-за опечатки в строке браузера, перемещённой или удалённой страницы. Если администратор сайта не настраивал переадресацию для такой ошибки, то мы увидим что-то вроде этого:
Но большинство сайтов умеют обрабатывать такую ситуацию и показывают вместо этого собственную страницу с сообщением об ошибке. Для этого сервер переадресовывает пользователя на специальную страницу на сайте, где предлагает ему другие материалы:
✅ Что можно сделать:
- проверить правильность URL;
- обновить страницу;
- использовать поиск по сайту;
- очистить кэш браузера;
- сообщить о проблеме владельцу сайта.
500 Internal server error: внутренняя ошибка сервера
Что означает: сервер не может обработать запрос из-за внутренних неполадок.
Это одна из самых неприятных ошибок: сервер может быть неправильно настроен, есть ошибки в коде серверного приложения, проблемы с базой данных или разработчики поменяли настройки сервера. Ещё одна причина — проблемы с интернетом, когда запрос просто не дошёл до сервера.
❌ Что можно сделать: ничего, такую ошибку исправляют администраторы или разработчики сайта. Ну, или подождать, пока появится интернет, если его нет.
502 Bad gateway: сервер не смог обработать запрос по внешним причинам
Что означает: сервер, которому браузер отправил запрос, получил неверный ответ (или вообще не получил) от других серверов или служб.
Причин может быть много: неверный ответ DNS-сервера, проблемы с внутренней сетью, неправильная настройка сервера или перегрузка запросами. Если на сайте большой наплыв посетителей или он подвергается DDoS-атаке и не справляется с нагрузкой, мы видим ошибку 502.
✅ Что можно сделать:
- обновить страницу или зайти на страницу позже;
- открыть сайт в другом браузере;
- очистить кэш браузера.
Если это не помогло — остаётся только ждать, пока сайт заработает снова.
503 Service Temporarily Unavailable: сервис временно недоступен
Что означает: по техническим причинам сервер не готов сейчас обрабатывать запросы.
Ошибка чаще всего возникает из-за перегрузки сервера, его обслуживания или обновления, проблем с конфигурацией, нехватки памяти и низкой пропускной способности сети.
❌ Что можно сделать: подождать, пока сервер снова начнёт отвечать на запросы. Иногда помогает зайти с другого браузера, но такое случается редко.
504 Gateway timeout: сервер не ответил в течение заданного времени
Что означает: сервер вовремя не ответил на запрос, и браузер устал его ждать. Как и ошибка 502, это обычно указывает на проблемы связи между серверами.
Причин у такой ошибки может быть много: сервер завис на какое-то время, слишком много посетителей, большая очередь обработки запросов или ошибка связи с промежуточным сервером.
✅ Что можно сделать:
- обновить страницу или зайти позже;
- открыть сайт в другом браузере;
- очистить кэш;
- перезагрузить роутер или модем.
Что дальше
В следующий раз мы выясним, где хранятся на сервере логи ошибок, как их посмотреть и как выяснить причину таких ошибок. Подпишитесь, чтобы не пропустить продолжение.