Совершая любой HTTP запрос, первое чем занимается сервер – это возвращает код ответа на HTML запрос. Если придать анализу этот ответ можно сделать вывод о том, был ли запрос успешен, или в процессе обработки запроса произошла какая-либо ошибка.
Коды ответов HTTP сервера можно группировать:
- 1хх – Информационный ответ;
- 2хх – Успешная обработка запроса;
- 3хх – Переадресация (редирект);
- 4хх – Неполный запрос к серверу;
- 5хх – Ошибка при обработке запроса.
Следует понимать, что в каждой группе не по 100 кодов ошибок. Браузер получая какой-либо код ответа, сам решает, как его интерпретировать. Если код ошибки не известен браузеру, тогда он как минимум, может определить диапазон его группы и повести себя соответствующим образом.
Для удобства, в данной статье собраны основные коды ответов сервера, которые можно настроить на хостинге, где происходила разработка сайта.
Информационные ответы
- 100 Continue – Часть запроса принята. Как правило, это означает, что можно отправлять следующая часть соответственного запроса;
- 101 Switching Protocols – Сервер производит переключение протоколов в соответствии с заголовком Upgrade.
Успешная обработка запроса
- 200 OK – Запрос обработан успешно;
- 201 Created – Этот код используется, когда происходить создание нового URI. Вместе с кодом сервер посылает заголовок Location с адресом нового URI;
- 202 Accepted – Запрос принял и обрабатывается. В теле ответа как правило содержится дополнительная информация;
- 203 Non-Authoritative Information – Такой ответ означает, что получаемая информация из ненадежного источника (например, это может быть другой сервер);
- 204 No Content – Запрос обработан, но в ответ ничего не возвращается. Зачастую, используется если в ответе на запрос не нужно обновлять содержимое документа;
- 205 Reset Content – Такой ответ значит, что содержимое документа должно быть сброшено в изначальное состояние. Обычно используется при очистке форм для ввода данных;
- 206 Partial Content – При данном ответе, возвращается лишь часть данных. Обычно используется если клиент запросил часть данных с использованием заголовка Range.
Переадресация
- 300 Multiple Choices – Этот код означает, что существует несколько вариантов запрашиваемой страницы. Например, страница сайта которая переведена на несколько языков;
- 301 Moved Permanently - Данный ответ означает, что данный документ был перемещен и клиенту следует изменить все ссылки на данный документ его новым местоположением.
- 302 Moved Temporarily - Документ временно перемещен в другое место;
- 303 See Other - Данный документ можно найте по другим ссылкам. Список ссылок передан в теле ответа;
- 304 Not Modified - Данный код ответа возвращается если был запрос lf-Modified-Since, и документ не изменялся с указанной даты;
- 305 Use Proxy - Доступ к документу должен осуществляться через proxy-сервер, адрес которого указан в Location.
Неполные запросы клиента
- 400 Bad Request - Ошибка в строке запроса;
- 401 Unauthorized - Ответ означает, что пользователь не имеет достаточных прав для просмотра документа;
- 402 Payment Required - Данный код зарезервирован на будущее. Видимо будет означать, что запрошенный документ является платным ресурсом;
- 403 Forbidden - Запрос не будет выполнен по какой-либо причине;
- 404 Not Found - Запрашиваемого документа нет на сервере;
- 405 Method Not Allowed - Означает, что метод, используемый клиентом, не поддерживается;
- 406 Not Acceptable - Ресурс существует, но не в той форме, что клиент запросил. Например, может различаться язык документа;
- 407 Proxy Authentication Required - Для Proxy-сервера необходима авторизация;
- 408 Request Time-out - Сервер разорвал соединение из-за превышенного таймаута;
- 409 Conflict - Запрос конфликтует с другим запросом;
- 410 Gone - Данный код означает, что документ был удален с сервера;
- 411 Length Required - Пропущено необходимое поле в заголовке запроса Content-Length;
- 412 Precondition Failed – Условие, указанное в заголовке - не выполняется;
- 413 Request Entity Too Large - Слишком большое тело запроса;
- 414 Request-URI Too Long - Слишком длинный URI в запросе;
- 415 Unsupported Media Type - Сервер не поддерживает указанный формат данных.
Ошибки сервера
- 500 Internal Server Error - Внутренняя ошибка сервера. Например, ошибка при выполнении скрипта;
- 501 Not Implemented - Недопустимое действие;
- 502 Bad Gateway - Недопустимый ответ с другого ресурса;
- 503 Service Unavailable - Данный код означает, что указанный сервис временно недоступен;
- 504 Gateway Time-out - Превышен таймаут ожидания от другого ресурса;
- 505 HTTP Version not supported - Данная версия протокола HTTP не поддерживается сервером.