Что такое код состояния HTTP?

Код статуса HTTP — это трёхзначный код ответа, отправляемый веб-сервером для указания результата запроса клиента. Он помогает как браузерам, так и разработчикам понять, был ли запрос выполнен успешно, завершился ли он сбоем или требует дальнейших действий.

Каждый раз, когда клиент (например, браузер, API или прокси-сервер) отправляет запрос на веб-сервер, сервер отвечает кодом статуса, который описывает, как он обработал данный запрос.

Эти коды сгруппированы по пяти основным категориям в зависимости от их первой цифры:

  • 1xx — Информационные: Запрос получен и находится в процессе обработки.
  • 2xx — Успех: Запрос был успешно получен, обработан и принят.
  • 3xx — Перенаправление: Клиенту необходимо предпринять дополнительные действия для завершения запроса.
  • 4xx — Ошибки клиента: В запросе допущены синтаксические ошибки или его невозможно выполнить.
  • 5xx — Ошибки сервера: Серверу не удалось выполнить действительный запрос.

Для пользователей прокси-серверов эти коды позволяют точно определить, связана ли проблема с подключением с прокси-сервером, целевым веб-сайтом или сетью между ними.

1xx — Информационные

Код состоянияОпределениеСледующие шаги
100 ПродолжитьПолучена начальная часть запроса, и клиенту следует продолжить отправку запроса.Продолжить отправку запроса.
101 Протоколы коммутацииСервер переключается на другой протокол в соответствии с запросом клиента.Убедитесь, что клиент поддерживает новый протокол.
102 ОбработкаСервер получил запрос и в настоящее время его обрабатывает, однако ответ пока отсутствует.Дождитесь завершения обработки сервером.
103 первых подсказокСодержит предварительную информацию о запросе, как правило, для оптимизации загрузки.Воспользуйтесь этими рекомендациями для повышения производительности или улучшения удобства работы пользователей.

2xx — Успех

Код состоянияОпределениеСледующие шаги
200 OKЗапрос был выполнен успешно, и сервер вернул запрошенный ресурс.Действий не требуется; запрос выполнен успешно.
201 СозданоЗапрос был выполнен, в результате чего был создан новый ресурс.Дальнейших действий не требуется; новый ресурс создан.
202 ПринятоЗапрос принят к обработке, однако обработка ещё не завершена.Дождитесь завершения обработки; при необходимости проверьте наличие обновлений.
203 Неавторитетная информацияЗапрос был выполнен успешно, однако возвращенные метаданные могут не принадлежать исходному серверу.Проверьте полученные данные на соответствие требованиям.
204 Отсутствие содержимогоЗапрос был выполнен успешно, однако в ответе не возвращается никакое содержимое.Действий не требуется; запрос был выполнен успешно, но отобразить нечего.
205 Сброс содержимогоЗапрос выполнен успешно, и клиенту следует обновить представление.Сбросить состояние просмотра документа или формы до исходного.
206 Неполное содержаниеСервер возвращает частичное содержимое запрашиваемого ресурса, как правило, в связи с наличием заголовка range.При необходимости продолжайте запрашивать дополнительные данные; проверьте полученные данные.

3xx — Перенаправление

Код состоянияОпределениеСледующие шаги
300 вопросов с несколькими вариантами ответовДля данного запроса существует несколько возможных ответов. Пользователю или клиенту следует выбрать один из них.Выберите один из предложенных вариантов или уточните свой запрос.
301 Перемещено навсегдаЗапрашиваемый ресурс был перемещен по новому URL-адресу, и во всех последующих запросах следует использовать этот новый URL-адрес.Обновите закладки или ссылки, чтобы использовать новый URL.
302 НайденЗапрашиваемый ресурс временно находится по другому URL-адресу, однако клиенту следует и в дальнейшем использовать исходный URL-адрес для последующих запросов.Перейдите по временному URL-адресу, но для последующих запросов продолжайте использовать исходный URL-адрес.
303 См. также Ответ на запрос можно найти по другому URL-адресу с использованием метода GET.Отправьте запрос GET по указанному URL-адресу, чтобы получить ресурс.
304 Не измененоРесурс не изменялся с момента последнего запроса, и клиент может использовать версию из кэша.Используйте кэшированную версию ресурса.
305 Использование прокси-сервераДоступ к запрашиваемому ресурсу необходимо осуществлять через прокси-сервер, указанный в ответе.Отправьте запрос повторно, используя указанный прокси-сервер.
307 Временное перенаправлениеЗапрашиваемый ресурс временно находится по другому URL-адресу, и клиенту следует использовать этот URL-адрес для данного запроса.Для данного запроса воспользуйтесь временным URL-адресом, однако для последующих запросов используйте исходный URL-адрес.
308 Постоянное перенаправлениеЗапрашиваемый ресурс был окончательно перемещен по новому URL-адресу, и во всех последующих запросах следует использовать новый URL-адрес.Обновите все ссылки, чтобы использовать новый URL.

4xx — Ошибка клиента

Код состоянияОпределениеСледующие шаги
400 Неверный запросСервер не может обработать запрос из-за ошибки на стороне клиента (например, некорректный синтаксис запроса).Проверьте синтаксис и параметры запроса, а затем повторите попытку.
401 Неавторизованный доступДля доступа к запрошенному ресурсу требуется аутентификация.Укажите действительные учетные данные для аутентификации и попробуйте ещё раз.
402 Требуется оплатаЗарезервировано для использования в будущем; как правило, указывает на то, что для доступа к ресурсу требуется оплата.Если необходимо, завершите процесс оплаты.
403 Доступ запрещенСервер распознает запрос, но отказывается его авторизовать.Убедитесь, что у вас есть необходимые права доступа к ресурсу.
404 Не найденоСервер не может найти запрошенный ресурс.Проверьте URL на наличие ошибок или попробуйте выполнить поиск ресурса.
405 Метод не допускаетсяМетод запроса не поддерживается для указанного ресурса.Проверьте, используется ли правильный HTTP-метод (GET, POST и т. д.).
406 НедопустимоСервер не может сгенерировать ответ, который соответствовал бы заголовкам Accept клиента.Настройте заголовки запроса так, чтобы он принимал допустимый формат ответа.
407 Требуется аутентификация прокси-сервераКлиент должен сначала пройти аутентификацию на прокси-сервере.Укажите действительные учетные данные для аутентификации через прокси.
408 Превышение времени ожидания запросаСервер превысил лимит времени ожидания запроса.Повторно отправьте запрос, убедившись, что он отправлен в пределах времени, допускаемого сервером.
409 КонфликтЗапрос не удалось обработать из-за конфликта с текущим состоянием ресурса.Устраните конфликт, прежде чем повторить запрос.
410 Не найденоЗапрашиваемый ресурс больше недоступен и не будет доступен в будущем.Удалите или обновите ссылки на данный ресурс, поскольку он был окончательно удален.
Требуемая длина 411Сервер требует, чтобы в запросе присутствовал заголовок Content-Length.Включите в запрос заголовок Content-Length и повторите попытку.
412 Нарушение предварительного условияСервер не соответствует одному из предварительных условий, указанных в заголовках запроса.Проверьте предварительные условия в заголовках запроса и при необходимости скорректируйте их.
413 Размер полезных данных превышает допустимыйРазмер объекта запроса превышает возможности сервера по его обработке.Уменьшите размер данных запроса и повторите попытку.
414 Слишком длинный URIURI, запрошенный клиентом, превышает максимальную длину, которую сервер готов обработать.Сократите URI или упростите запрос.
415 Неподдерживаемый тип медиаФормат данных, запрошенных пользователем, не поддерживается сервером.В запросе следует использовать поддерживаемый формат медиафайла.
416. Диапазон не соответствует условиямСервер не может выполнить запрос, указанный в заголовке «Range».Измените запрос на диапазон или попробуйте получить доступ к полному ресурсу.
417 Ошибка ожиданияСервер не может выполнить требования, указанные в поле заголовка запроса «Expect».Удалите заголовок «Expect» или измените его значение и попробуйте ещё раз.
429 Слишком много запросовПользователь отправил слишком много запросов с одного и того же IP-адреса за определенный промежуток времени («ограничение скорости»).Подождите и попробуйте снова через некоторое время; рекомендуется уменьшить частоту запросов или распределить их по нескольким IP-адресам с помощью прокси-серверов для частных пользователей.

5xx — Ошибка сервера

Код состоянияОпределениеСледующие шаги
Ошибка 500: внутренняя ошибка сервераНа сервере произошла непредвиденная ситуация, из-за которой запрос не удалось выполнить.Проверьте журналы сервера на наличие ошибок и устраните все неисправности, вызывающие данную проблему.
501 Не реализованоСервер не поддерживает функции, необходимые для выполнения запроса.Убедитесь, что серверное программное обеспечение способно обработать данный запрос; рассмотрите возможность обновления или замены сервера.
502 Ошибка шлюзаСервер, работая в качестве шлюза или прокси-сервера, получил некорректный ответ от вышестоящего сервера.Проверьте исходный сервер и сетевые соединения; устраните все проблемы.
503 Сервис недоступенВ данный момент сервер не может обработать запрос, что часто связано с временной перегрузкой или проведением технического обслуживания.Попробуйте позже; проверьте загрузку сервера или статус технического обслуживания.
504 Таймаут шлюзаСервер, действуя в качестве шлюза или прокси-сервера, не получил своевременного ответа от вышестоящего сервера.Проверьте исходный сервер и сетевые соединения; убедитесь в правильности настроек таймаута.
505 Версия HTTP не поддерживаетсяСервер не поддерживает версию протокола HTTP, использованную в запросе.Используйте поддерживаемую версию HTTP или обновите программное обеспечение сервера.
Вариант 506 также подлежит обсуждениюНа сервере произошла внутренняя ошибка конфигурации, приведшая к возникновению циклической ссылки.Исправьте настройки сервера, чтобы устранить циклическую ссылку.
507 Недостаточно места на дискеСервер не может сохранить представление, необходимое для выполнения запроса.Освободите место на диске или увеличьте объём хранилища на сервере.
Обнаружен цикл 508Сервер обнаружил бесконечный цикл при обработке запроса.Выявите и устраните цикл в конфигурации или коде сервера.
510 Не продленоДля выполнения запроса сервером потребуются дополнительные данные.Убедитесь, что запрос клиента содержит необходимые расширения.
Требуется сетевая аутентификация 511Клиенту необходимо пройти аутентификацию для получения доступа к сети.Укажите действительные учетные данные для сетевой аутентификации.

Случаи использования

Мониторинг прокси-соединений

При использовании прокси-серверы для сбора данных В случае веб-автоматизации коды статуса показывают, где произошла ошибка при обработке запроса — на прокси-сервере, на целевом сервере или в сети. Например, ошибка 403 часто указывает на блокировку IP-адреса, а ошибка 407 означает аутентификация через прокси-сервер не удалось.

Оптимизация веб-парсинга

Скрейперы используют коды статуса для динамической настройки своего поведения. A 429. Слишком много запросов запускает автоматическое регулирование пропускной способности или смену прокси-серверов, что помогает обеспечить доступ к целевым веб-сайтам.

Передовой опыт

Регистрация и классификация кодов состояния

Всегда фиксируйте коды состояния во время соскабливание или операций API. Распознавание закономерностей (таких как всплески ошибок 403 или 429) помогает точно настроить параметры прокси-сервера и пользовательских агентов.

Используйте алгоритм повторных попыток и ротацию

Реализуйте повторные попытки и Ротация IP-адресов в случае временных ответов с кодами 5xx или 429. Это повышает время безотказной работы и снижает риск блокировки.

Отслеживание динамики откликов

Настройте оповещения о нетипичных показателях ошибок, чтобы своевременно выявлять проблемы — например, истекшие учетные данные прокси-сервера или изменения на целевом веб-сайте.

Заключение

Коды статуса HTTP служат связующим звеном между клиентом и сервером, сигнализируя об успешном выполнении запроса, его сбое или необходимости корректировки. Для команд, использующих прокси-серверы, понимание этих кодов помогает быстрее выявлять и устранять проблемы, повышая надежность соединения и точность данных.

Часто задаваемые вопросы

Они описывают, как сервер отреагировал на запрос клиента — был ли он выполнен успешно, завершился ли сбоем или требует дополнительных действий.

Они помогают определить, связана ли проблема с вашим прокси-сервером, целевым веб-сайтом или настройками клиентского устройства.

Ошибки серии 4xx указывают на проблемы на стороне клиента (например, некорректный запрос или несанкционированный доступ), тогда как ошибки серии 5xx указывают на сбои на стороне сервера.

Во многих случаях — да. Смена IP-адресов, использование прокси-серверов для частных пользователей или правильная аутентификация часто позволяют устранить ошибки 4xx и 5xx.