
Какие есть статус-коды HTTP?
Введение
Веб-разработка и работа с API тесно связаны с пониманием и использованием HTTP статус-кодов. Эти коды сообщают о результате выполнения HTTP-запроса, будь то успешное выполнение, перенаправление или ошибка. Знание их значения и правильное использование играет важную роль в обеспечении эффективного взаимодействия между клиентом и сервером.
Что такое HTTP статус-коды?
HTTP статус-коды — это трехзначные числа, возвращаемые сервером в ответ на HTTP-запрос клиента. Они делятся на пять категорий, каждая из которых имеет своё значение и применение.
Категории HTTP статус-кодов
Информационные ответы (100–199)
Информационные статус-коды указывают на то, что запрос был принят и обработка продолжается.
- 100 Continue: Сервер получил начальные заголовки запроса и клиент должен продолжить отправку тела запроса.
- 101 Switching Protocols: Клиент запросил изменение протокола, и сервер подтвердил, что он это сделает.
- 102 Processing: Сервер получил запрос, но обработка ещё не завершена.
Успешные ответы (200–299)
Эти статус-коды указывают на успешное выполнение запроса.
- 200 OK: Запрос выполнен успешно. Ответ зависит от метода запроса (например, данные запрошенного ресурса для GET).
- 201 Created: Запрос привёл к созданию нового ресурса. Ссылка на созданный ресурс обычно передаётся в заголовке
Location
. - 202 Accepted: Запрос принят, но ещё не обработан. Это не гарантирует, что запрос будет выполнен.
- 203 Non-Authoritative Information: Сервер вернул метаинформацию, которая отличается от тех, что хранятся на сервере.
- 204 No Content: Запрос выполнен успешно, но тело ответа пустое.
- 205 Reset Content: Запрос выполнен успешно, и клиент должен сбросить представление документа.
- 206 Partial Content: Сервер возвращает только часть ресурса, как это было запрошено клиентом (используется для возобновления прерванных загрузок).
Перенаправления (300–399)
Перенаправления указывают, что клиент должен выполнить дополнительные действия для завершения запроса.
- 300 Multiple Choices: Запрос имеет несколько возможных ответов. Пользователь или клиент должен выбрать один из них.
- 301 Moved Permanently: Запрашиваемый ресурс был перемещён на новый постоянный URL.
- 302 Found: Запрашиваемый ресурс временно находится по другому URL.
- 303 See Other: Клиент должен использовать другой URL для доступа к ресурсу, например, для POST запроса.
- 304 Not Modified: Запрашиваемый ресурс не изменялся с момента последнего запроса. Клиент может использовать кэшированную версию.
- 307 Temporary Redirect: Временное перенаправление на другой URL. Метод запроса не должен изменяться.
- 308 Permanent Redirect: Постоянное перенаправление на новый URL. Метод запроса не должен изменяться.
Ошибки клиента (400–499)
Эти статус-коды указывают на ошибки, возникшие по вине клиента.
- 400 Bad Request: Сервер не понимает запрос из-за неверного синтаксиса.
- 401 Unauthorized: Аутентификация не выполнена или не предоставлена.
- 403 Forbidden: Сервер понял запрос, но отказывается его выполнять.
- 404 Not Found: Сервер не может найти запрашиваемый ресурс.
- 405 Method Not Allowed: Метод, указанный в запросе, не разрешён для ресурса.
- 406 Not Acceptable: Запрашиваемый ресурс не соответствует критериям, указанным в заголовке
Accept
запроса. - 407 Proxy Authentication Required: Клиент должен аутентифицироваться через прокси.
- 408 Request Timeout: Сервер ожидает запрос от клиента слишком долго.
- 409 Conflict: Запрос не может быть выполнен из-за конфликта с текущим состоянием ресурса.
- 410 Gone: Запрашиваемый ресурс больше недоступен и не имеет нового адреса.
- 411 Length Required: Запрос должен содержать заголовок
Content-Length
. - 412 Precondition Failed: Условие, указанное в запросе, не выполнено.
- 413 Payload Too Large: Размер тела запроса превышает допустимые пределы.
- 414 URI Too Long: URI запроса слишком длинный для обработки сервером.
- 415 Unsupported Media Type: Формат медиа, указанный в запросе, не поддерживается сервером.
- 416 Range Not Satisfiable: Диапазон, указанный в заголовке запроса, не может быть выполнен.
- 417 Expectation Failed: Ожидание, указанное в заголовке
Expect
запроса, не может быть выполнено сервером. - 418 I'm a teapot: Веселый статус-код, созданный как шутка в протоколе HTCPCP/1.0. Сервер отказывается заваривать кофе, потому что он чайник.
Ошибки сервера (500–599)
Эти статус-коды указывают на проблемы, возникшие на стороне сервера.
- 500 Internal Server Error: Сервер столкнулся с непредвиденной ошибкой и не может выполнить запрос.
- 501 Not Implemented: Метод запроса не поддерживается сервером.
- 502 Bad Gateway: Сервер получил неверный ответ от вышестоящего сервера.
- 503 Service Unavailable: Сервер временно недоступен из-за перегрузки или проведения технических работ.
- 504 Gateway Timeout: Сервер не получил своевременного ответа от вышестоящего сервера.
- 505 HTTP Version Not Supported: Сервер не поддерживает версию HTTP протокола, использованную в запросе.
Часто задаваемые вопросы
Что такое HTTP статус-коды?
HTTP статус-коды — это трехзначные числа, возвращаемые сервером в ответ на HTTP-запрос клиента. Они делятся на пять основных категорий, каждая из которых имеет своё значение и применение.
Зачем нужны HTTP статус-коды?
HTTP статус-коды помогают клиенту (например, веб-браузеру) и серверу эффективно общаться. Они сообщают клиенту о результате выполнения запроса: успешен ли запрос, требуется ли перенаправление или произошла ошибка.
Что означает статус-код 200?
Статус-код 200 OK означает, что запрос был успешно выполнен и сервер вернул запрашиваемые данные.
Чем отличается статус-код 301 от 302?
Статус-код 301 Moved Permanently означает, что ресурс был перемещён на новый постоянный URL, в то время как 302 Found указывает на временное перемещение ресурса.
Что делать, если я получаю статус-код 404?
Статус-код 404 Not Found означает, что сервер не может найти запрашиваемый ресурс. Убедитесь, что URL введён правильно, и что ресурс существует на сервере.
Как исправить ошибку 500 Internal Server Error?
Ошибка 500 Internal Server Error указывает на проблему на сервере. Проверьте серверные журналы для получения дополнительной информации о причине ошибки и исправьте её.
Что означает статус-код 503 Service Unavailable?
Статус-код 503 Service Unavailable означает, что сервер временно не может обработать запрос. Это может быть вызвано перегрузкой сервера или проведением технических работ.
Как отличить клиентскую ошибку от серверной?
Клиентские ошибки имеют статус-коды в диапазоне 400–499, а серверные ошибки — в диапазоне 500–599. Клиентские ошибки обычно вызваны неверным запросом клиента, в то время как серверные ошибки указывают на проблемы на стороне сервера.