Что за 404? 200 — это ок? Неееет, только не 502! Что это за цифры?!
Сайты порой ломаются и их надо чинить. Как и любому доктору, веб-мастеру нужно посмотреть на симптомы, поставить диагноз, а затем уже лечить пациента. Выявить причину недоступности сайта помогают особые численные значения — коды состояния.
Что такое код состояния?
Иногда коды состояния называют кодами ошибок. Коды ошибок действительно присылаются, если сайт недоступен, но это часть всех кодов состояния.
Код состояния — это численное значение, которое отправляется сервером при запросе клиента по HTTP/HTTPS. Они состоят из трех цифр. Все коды можно разделить на 5 статусов, которые определяются первой цифрой:
- 1ХХ — информационные;
- 2ХХ — успешные, ошибок нет;
- 3ХХ — перенаправления;
- 4ХХ — ошибки клиента;
- 5ХХ — ошибки сервера.
Как можно заметить, за ошибки отвечают только «четырехсотки» и «пятисотки». Ниже мы рассмотрим их по отдельности, но с небольшим бонусом от Спринтхост.
«Сотки» и «двухсотки»
«Сотки» — это коды, которые сообщают о процессе передачи запроса. Клиент принимает их к сведению, но серверу в ответ ничего не отправляет.
По факту, особой информации они не несут и нужны только для последующей работы клиента и сервера. Например, код «102 Processing» означает, что запрос принят, но ему нужно чуть больше времени на обработку. Благодаря этому коду, клиент не разорвет связь раньше времени.
«Двухсотки» можно увидеть (через инструменты разработчика), когда страница успешно загрузилась. При этом процесс передачи данных и связи клиента с сервером может не завершиться, а работать в фоновом режиме.
И, да, «200» — это ОК!
«Трехсотки»
Это особые коды состояния, которые сообщают клиенту, что нужно ввести другой запрос, так как запрашиваемый ресурс находится по другому адресу. Наиболее частыми кодами являются «301» и «302», где первый — это постоянное перенаправление на новый URI, а второй — временное. Например, если в онлайн-магазине закончился какой-то товар, то можно поставить временное перенаправление на его аналог. Если товара вообще больше не будет, то постоянное. Для поисковиков вообще все проще: если 301, то больше не нужно индексировать старую страницу, а если 302, то про старую не стоит забывать. В Спринтхост есть инструкция в Базе знаний по настройке таких перенаправлений.
«Четырехсотки»
Вот мы и добрались до самых известных кодов состояний. Здесь остановимся поподробнее.
«Четырехсотки» указывают на ошибку со стороны клиента. Например, «400 Bad Request» указывает, что сервер нашел синтаксическую ошибку в запросе.
«401 Unauthorized» — ресурсу нужна аутентификация. Сайт просит «поздороваться» с ним, представиться. Иначе доступ запрещен или ограничен.
«403 Forbidden» — запрос принят, но сервер не будет его выполнять. Почему? Потому что нет доступа к запрашиваемому ресурсу. Например, к системным или специально закрытым для доступа файлам. Обычно такую ошибку не обойти, если не изменить права доступа. Кроме того, ошибка может указывать на то, что в директории нет индексного файла, из которого сайт и запускается. Файл просто может иметь другое название или вообще удален, поэтому сервер не понимает, что ему открыть, и отправляет эту ошибку.
«404 Not found» — часто встречаемый код ошибки, при котором сервер понимает запрос, но не может найти нужный ресурс. Он устает искать, говорит, что у него лапки, и отдает этот код ошибки.
«408 Request Timeout» — запрос выполняется слишком долго, что сервер устает ждать.
«418 I'm teapot» — шуточный код состояния, который был придуман на 1 апреля. Ничего важного в себе не несет.
«4040» и «4041» — коды состояния («заглушки») Спринтхост, основанные на «404». Эти ошибки возникают, если домен не был добавлен на сервер Спринтхост. Исправить можно, изменив NS- и A-записи и подождав обновления кеша DNS. Если не помогло, то обратитесь в поддержку.
«Пятисотки»
Эти коды состояний указывают на ошибки со стороны сервера.
«500 Internal Server Error» — любая ошибка на стороне сервера, которая не входит в остальные типы. В рамках опыта Спринтхост такой код отправляется чаще всего из-за ошибок в файле .htaccess или из-за несовместимости версии веб-сервера и языка программирования, на котором писали сайт. Вместо него может загрузиться либо пустая страница, либо текст с описанием ошибки. Кроме того, неполадки могут быть в CMS, например, после обновления.
«502 Bad Gateway» — еще один известный код состояния, который возникает, когда прокси-сервер получил недействительное сообщение от вышестоящего сервера или от него вообще нет ответа. Такое случается, когда работают два веб-сервера в связке, как nginx и Apache.
«5020» — код состояния Спринтхост, основанный на «502». Эта ошибка возникает по нескольким причинам:
- из-за слишком тяжелого скрипта, который потребляет больше оперативной памяти, чем возможно;
- скрипт неожиданно завершает работу (а запрос-то не дошел до конца);
- веб-сервер не справляется с большим количеством запросов из-за резко возросшей посещаемости сайта или в случае DDoS-атаки.
«503 Service Unavailable» — сервер временно недоступен по техническим причинам. Через некоторое время можно снова попробовать попасть на ресурс.
«504 Gateway Timeout» — сервер не дождался ответа от вышестоящего сервера.
Сейчас будет парад кодов состояния Спринтхост, основанные на «503» ошибке. Поехали!
«5030» присылается, когда лимит использования ресурсов исчерпан, то есть сайт потребляет больше, чем ему положено сервером. При этом часть запросов отклоняется, чтобы привести потребление в норму.
«5031» сообщает, что сайт подвергся взлому или DDoS-атаке, из-за чего был заблокирован.
«5032» и «5033» указывают на блокировку сайта по требованию Роскомнадзора или правообладателя.
«5034» отображается, если сайт достиг лимита по одновременным запросам пользователей. Эти запросы можно увидеть в журнале веб-сервера в Панели управления.
«5035» отправляется только пользователям бесплатного хостинга, так как у них есть лимит на количество запросов в сутки.
«4030» и «4031» (да, они тоже основаны на «503») присылаются, если сайт заблокирован хостинг-провайдером («4030») или владельцем («4031»). Причин блокировки провайдером может быть несколько, их можно посмотреть в Панели управления.
«4032» крайне редкая. Она сообщает, что Панель управления обновляется. Но сейчас мы проводим работы почти незаметно для пользователей.
Одна ошибка и ты ошибся
Первые три вида не требуют каких-либо действий от пользователя, так как они предназначены для клиента и сервера и работают автоматически.
Два последних типа говорят, что конкретно сломалось и почему сайт не работает. Если проблема в сайте, то нужно продебажить его и выявить неисправности. Техподдержка Спринтхост также может провести диагностику, чтобы починить сайт и предотвратить последующее появление ошибок. В особенности это касается «заглушек» Спринтхост. Если вы не уверены, в чем конкретно проблема, то лучше обратиться за помощью, так как можно сломать сайт еще сильнее, а техподдержка оперативно проконсультирует по этому вопросу и подскажет, что делать.