В процессе работы сайта возможны появления ошибок. Ошибки эти могут быть связаны как с клиентской стороной, так и с серверной. И если ваш сайт выдает ошибки, то нужно сначала определить, с чем они связаны, а уже потом "лечить".
Та или иная ошибка на сайте идентифицируется, как правило, по первой строке ответа сервера. То есть загрузка страницы браузером происходит следующим образом:
- Клиент посылает запрос на сервер;
- Сервер проверяет, есть ли у него запрашиваема страница, где она расположена и т.д.;
- Сервер присылает ответ, в первой строке которого находится код (статус) запрашиваемой страницы;
- Браузер интерпретирует ответ сервера: если код успешный, то страница отдается пользователю, если ошибочный - детектируется тип ошибки и выводится пользователю.
Заголовок ответа сервера обычно содержит код статуса сервера (три цифры, первая из которых указывает на тип ответа), и затем поясняющую фразу на английском языке. Существует 5 типов кода статуса сервера. Рассмотрим каждый из этих типов, а также наиболее распространенные коды ошибок, которые к ним относятся.
1xx (Информационный)
Информационные статусы сервера не являются ошибками и, как правило, сообщают о том, что запрос был принят, но еще не обработан. Информационные коды: 100, 101, 102.
2xx (Успешно)
Статусы 2xx сообщают об успешной загрузке документа. Наиболее распространенный код - 200, который означает, что ответ сервера пришел, страница существует, и всё произошло как надо. В результате страница отдается пользователю.
3xx (Перенаправление)
Еще одним популярным классом ответов сервера является перенаправление. Коды этого класса означают, что запрашиваемая страница была перемещена на другой адрес, и в таком случае сервер передает клиенту новый адрес страницы, на который делается повторный запрос.
К наиболее популярным кодам этого класса относятся:
- 301 - страница перемещена навсегда;
- 302 - страница временно перемещена.
4xx (Ошибка на клиенте)
Коды ответа 4xx означают, что произошла ошибка на стороне клиента или запрашиваемая страница не существует. Эти ошибки появляются часто в сети, поэтому рассмотрим, что они означают.
- 400 - плохой запрос. Это означает, что в запросе присутствует синтаксическая ошибка (например, в протоколе передачи данных);
- 401 - нет авторизации. Такую ошибку пользователь получает при попытке получения доступа к данным, для которых нужна авторизация, а ее нет, или логин/пароль неверны;
- 403 - запрещено. Ошибка 403 на сайте означает, что клиент пытается получить доступ к данным, к которым доступ запрещен даже с авторизацией.
- 404 - не найдено. Очень часто встречающаяся ошибка на просторах сети. Означает, что запрашиваемый документ не найден, или вообще не существует. В таком случае пользователь получает страницу с ошибкой 404.
5xx (Ошибка на сервере)
Еще один популярный ряд ошибок - 5xx. Это ошибки на стороне сервера. Они также часто встречаются в интернете, поэтому рассмотрим некоторые из них.
- 500 - внутренняя ошибка сервера. Ошибка 500 на сайте отдается тогда, когда на сервере произошла неизвестная внутренняя ошибка, которая не относится к остальным ошибкам данного класса.
- 501 - не реализовано. Эта ошибка, в прямом смысле, означает, что сервер скорее всего не поддерживает технологий, которые необходимы для обработки запроса, либо не понимает, чего от него хотят.
- 503 - сервер недоступен. Сервер, по техническим причинам, временно не может обрабатывать запросы.
- 522 - сервер перегружен. Ошибка 522 на сайте означает, что сервер в данный момент перегружен, и необходимо обратиться позже.