Коды ответов HTTP
Знание кодов возврата HTTP (ответов) весьма важно для системного администратора.
Вы, наверняка уже знаете, что протокол HTTP возвращает определенные коды ответов HTTP, которые являются кодами статуса HTTP-соединения.
Наверняка, код 404 - Not Found знаком всем, ведь с ним сталкиваются все без исключения пользователи интернета. Ошибка 404 является самой распространенной потому, что некоторые ссылки web-ресурсов указывают на отсутствующие страницы. Иногда все ошибки из диапазона 400...415 расцениваются как ошибка 404.
Код ответа HTTP 200 является кодом нормального завершения операции, вы его не видите, когда получаете страницу.
Всего определено 5 категорий кодов ответа HTTP. Каждая из этих категорий может содержать 100 кодов возврата.
Коды диапазона 100...199 являются информационными. С их помощью возвращается различная информация, относящаяся к запросу.
Диапазон 200...299 является диапазоном успешных операций. Коды, относящиеся к этому диапазону, сообщают об удачном завершении той или иной операции. К этому диапазону относятся также коды, сообщающие, что запрашиваемый файл пуст (no content), и сообщающие, что запрос был принят.
Диапазон кодов ответа 300...399 являются кодами перенаправления (redirect).
Коды диапазона 400...499 являются ошибками клиента. Например, пользователь может запросить несуществующий документ. К этому же диапазону относятся и ошибки "Forbidden" и "Unauthorized". И первая, и вторая сообщают, что у клиента нет доступа к определенному ресурсу. В первом случае доступ просто запрещен, а во втором случае клиент не является авторизированным.
Коды ответа 500...599 являются кодами ошибок сервера. Данные ошибки возникают при внутренней ошибке сервера или же при неправильном его конфигурировании. Во втором случае сервер просто не может правильно возвратить ответ на запрос. Этот тип ошибок встречается обычно, когда ошибку совершает сценарий (скрипт), расположенный на сервере.
Некоторые интерпретаторы скриптов, например, PHP никогда не допускают такой ошибки. Если в PHP-скрипте присуствуют ошибки, то интерпретатор PHP просто возвратит клиенту сообщение об этой ошибке. Со стороны сервера это будет выглядеть как нормальный ответ клиенту (браузеру). Например, в отличие от PHP-интерпретатора, Perl возвращает сообщение об ошибке в протокол HTTP.
Теперь приведем список основных кодов возврата HTTP:
Таблица кодов возврата HTTP
Код возврата |
Описание кода возврата HTTP |
100 |
Продолжить (Continue) |
101 |
Переключение протоколов (switching protocols) |
200 |
OK |
201 |
Создан (created) |
202 |
Принят |
203 |
Неавторитеная информация (non-authoritative information) |
204 |
Файл пуст (no content) |
205 |
Сброс содержимого (reset content) |
206 |
Частичное содержимое (partial content) |
300 |
Многократный выбор (multiple choices) |
301 |
Перемещен постоянно (moved permanently) |
302 |
Перемещен временно (moved temporarily) |
303 |
Смотри другой (see other) |
304 |
Неизмененный (not modified) |
305 |
Использовать прокси-сервер (use proxy) |
400 |
Неправильный запрос (bad request) |
401 |
Неавторизирован (unauthorized) |
402 |
Payment Required |
403 |
Нет доступа (forbidden) |
404 |
Не найден |
405 |
Метод не разрешен (method not allowed) |
406 |
Неприемлемый (not acceptable) |
407 |
Требуется аутентификация на прокси-сервере (proxy authentication required) |
408 |
Превышение тайм-аута запроса (request time-out) |
411 |
Тредуется длина (при использовании метода POST) |
412 |
Не выполнено предыдущее условие (precondition failed) |
413 |
Объект запроса слишком велик (request entity too large) |
414 |
Запрашиваемый URL слишком велик (request URL too large) |
415 |
Неподдерживаемый тип информации (unsupported media type) |
500 |
Ошибка сервера (server error) |
501 |
Не реализован (not implemented) |
502 |
Неправильный шлюз (Bad Gateway) |
503 |
Нехватка ресурсов (out of resources) |
504 |
Превышен тайм-аут шлюза |
505 |
Неподдерживаемая весрия HTTP (HTTP version not supported) |
Разумеется, это не полный перечень кодов ответа HTTP, но приведенного списка основных кодов возврата вполне достаточно.