Пользователи интернета, которые хоть немного углублялись в терминологию Сети (по крайней мере, большая их часть), знают, что представляет собой протокол HTTP. Данный протокол передачи данных позволяет пользователям взаимодействовать с веб-ресурсами через браузер. Одной из функций протокола является возможность возвращать специальные коды, дающие пользователям информацию о состоянии работы веб-сайта или статуса выполнения той или иной задачи. Сюда же входят и коды ошибок HTTP. Коды ошибок делятся на два типа: ошибки клиента и ошибки сервера. Об этих двух категориях и других полезных, а главное - часто встречающихся кодах поговорим в данном материале.
Ошибки HTTP-клиента
В случае если ошибка была обнаружена на стороне клиента, сервер возвращает ему код из класса 4xx. Если на сервере не обнаружено каких-либо проблем, но он все еще недоступен пользователю, то клиенту отправляется код с пояснением ошибки.
Итак, ошибки клиента под кодом 40х:
- 400. Неверный запрос – ошибка возникает когда сервер замечает синтаксическую ошибку в запросе от клиента. Она будет возникать до тех пор, пока со стороны клиента не будут произведены соответствующие изменения. Необходимо соблюдать все правила передачи данных для используемого протокола.
- 401. Отсутствует авторизация – эта ошибка означает, что HTTP-сервер требует аутентификации. При этом именно со стороны сервера приходят все условия для выполнения аутентификации. Причиной возникновения ошибки может быть неверное введенное имя или пароль для авторизации.
- 402. Необходимо внести плату – код не используется, но зарезервирован в протоколе на будущее. Изначально задумывался как интерфейс для внесения платы для получения доступа к конкретному ресурсу. Так как ничего не вышло, код 402 взяли на вооружение Apple и Google, время от времени применяющие его в своих веб-сервисах.
- 403. Доступ закрыт – ошибка возникает когда сервер правильно функционирует, но у пользователя, запрашивающего доступ к нему, недостаточно прав для этого. Часто сопровождается окном авторизации.
- 404. Not Found (ресурс/файл не найден) – наиболее часто встречающаяся ошибка в интернете. Как правило, возникает из-за опечаток при наборе веб-адреса. Частое упоминание и появление в Сети превратило данный код в популярную в интернете шутку.
- 405. Метод запрещен – ошибка данных HTTP, которые нужно ввести посредством POST либо с использованием метода PUT. Иными словами, ошибка возникает при использовании метода GET тогда, когда он недоступен или не поддерживается сервером для обработки определенных данных.
- 406. Запрос не может быть принят – этот код возвращается сервером, когда запрашиваемый контент неприменим к заголовкам типа Accept. Чаще всего возникает, когда запрашиваемый ресурс не соответствует формату, который может быть распознан клиентом.
- 407. Требуется авторизация на стороне прокси-сервера – вместе с кодом сервер возвращает специальное поле для авторизации на прокси-сервере.
- 408. Время на запрос вышло – возникает когда сервер прекращает ждать дальнейшие запросы со стороны клиента. Повторить запрос можно в любое время, даже после того, как время ожидания истекло.
- 409. Конфликт – в каких ситуациях возникает данная ошибка HTTP? Загрузка файла на веб-сервер, где уже сохранен идентичный файл или документ более новой версии. Система контроля версий файлов, хранящихся на сервере, не позволяет заменить файл более ранней версией, из-за чего возникает конфликт под этим кодом.
Ошибки клиента под кодом 41х
- 410. Ресурс удален – ошибка появляется в том случае, если запрашиваемый ресурс располагался по указанному адресу, но был удален и более недоступен.
- 412. Предварительные условия не выполнены – этот код отображается в том случае, если условные поля заголовка не выполняются (совсем).
- 413. Размер запроса превышает допустимую норму – ошибка появляется, когда тело посланного клиентом запроса имеет слишком большой размер, и сервер не может его обработать.
- 414. Слишком длинный адрес – если сервер возвращает этот код, значит, URL, указанный в запросе, слишком длинный и не может быть обработан. Также ошибка возникает, когда клиент передает данные через GET вместо POST.
- 415. Неподдерживаемый формат файла – ошибка возникает, когда сервер отказывается работать с определенным форматом данных (причина может быть любой).
- 417. Сбой ожидания – заголовок запроса со стороны клиента не удовлетворяет требованиям поля EXPECT.
- 418 I’m a teapot – впервые появившийся в 1998 году код, который стал первоапрельской шуткой и никогда не был задействован всерьез.
Ошибки клиента под кодом 42х
- 422. Элемент не может быть обработан – теоретически сервер может обработать запрос, посланный клиентом; файл, находящийся в теле запроса, также поддерживается (это может быть таблица и любой другой медиафайл), но по каким-то причинам возникла логическая ошибка, ограничивающая деятельность сервера.
- 423. Доступ закрыт – используемый метод заблокирован на стороне сервера. Необходимо использовать другой метод.
- 424. Ошибка зависимости – этот код будет отображен в том случае, если операция, от успешности которой зависит исполнение текущей команды, была по тем или иным причинам прервана.
- 425. Неправильный порядок элементов – код отображается в том случае, если при запросе нескольких элементов с сервера их порядок (серверный) не был соблюден.
- 426. Необходимо обновление – код, оповещающий о необходимости произвести обновление протокола. Поля для обновления должны быть правильно оформлены на стороне сервера.
- 428. Необходимо завершение зависимой операции – с помощью этого кода сервер оповещает клиента о том, что необходимо в запросе задействовать заголовки-условия.
- 429. Слишком большое количество запросов – ошибка возникает в том случае, если клиент посылает на сервер слишком много запросов, что может быть следствием DDoS-атаки, посему блокируется сервером.
Остальные коды ошибок клиента
- 431. Превышение длины заголовка – при превышении длины заголовка сервер может в ответ послать этот код, но чаще всего он просто сбрасывает соединение.
- 434. Адрес недоступен – ошибка сигнализирует о недоступности запрашиваемого адреса.
- 449. Повторить – код возвращается в том случае, если серверу для обработки запроса требуется дополнительная информация.
- 451. Заблокирован по юридическим причинам – сервер может быть заблокирован в том случае, если органы государственной власти послали запрос на блокировку по различным юридическим причинам.
При работе вне веб-браузера могут возникать и другие ошибки, например критическая ошибка обновления HTTP-сервера, но ее причины нужно выяснять у владельцев программы или приложения, в котором возникла проблема.
Ошибки HTTP–сервера
Такие коды возникают, когда инсценируемые операции завершаются неудачей по вине сервера. Подобные ошибки отображаются с помощью кодов 5хх и кратким пояснением ошибки.
Ошибки сервера под кодом 50х
- 500 Internal Server Error – ошибка HTTP-сервера, не поддающая идентификации. Этим кодом обозначается любая ошибка, для которой не существует отдельно обозначенного кодового значения.
- 501. Not Implemented (метод не поддерживается) – этот код выводится сервером, когда используемый метод им не поддерживается. Проблема возникает при работе с серверами, которые не настроены на правильную работу со стандартными командами HTTP.
- 502. Bad Gateway (ошибка шлюза) – проблема возникает, когда сервер, выступающий в роли шлюза, получает ошибочный ответ со стороны «главного» сервера.
- 503. Service Unavailable (сервис недоступен) – данный код чаще всего появляется, когда на сервере идут технические работы или он перезагружается.
- 504. Gateway Timeout (время прохождения через шлюз вышло) – ошибка возникает, когда сервер, работающий в качестве шлюза, не успевает получить ответ от «главного» сервера.
- 505. HTTP Version Not Supported (используемая версия протокола не поддерживается) – указанный сервер не работает с той версией протокола, которая указана в запросе со стороны клиента.
- 507. Insufficiente Storage (нехватка пространства) – проблема возникает при недостатке цифрового пространства для обработки запроса. Чаще всего проблема имеет временный характер.
Ошибки сервера под кодом 51х
- 510. Not Extended (отсутствует расширение) – ошибка появляется в том случае, если на сервере нет расширения, которое было запрошено клиентом.
- 511. Network Authentication Required (необходима авторизация) – подобный ответ посылается не от самого сервера, а от посредника, в роли которого выступает провайдер платной точки Wi-Fi.
Информационные коды
- 100. Continue (продолжение) – этот код оповещает клиента о том, что его начальные действия удовлетворяют требования сервера, и он может продолжать посылать команды.
- 101. Switching Protocols (смена протокола) – интерактивный код, предлагающий заменить используемый протокол более подходящим.
- 102. Processing (в процессе обработки) – код, оповещающий о том, что запрос принят, но на его обработку потребуется значительное время.
Коды перенаправления
- 300. Multiple Choices (выбор) – возникает, если по выбранной ссылке можно пройти сразу на несколько ресурсов, расположенных на одном сервере. Вместе с кодом предоставляется выбор между разными вариантами. Причем он может быть сделан как пользователем, так и клиентом, в зависимости от настроек сервера.
- 301. Moved Permanently (ресурс перемещен) – код возвращается, когда запрашиваемый ресурс или файл был навсегда перемещен и располагается по другому адресу.
- 302. Found (ресурс найден) – код возвращается, когда запрашиваемый ресурс или файл был временно перемещен и может быть найден по другому адресу.
- 303. See Other (поиск по другим адресам) – данный код возвращается сервером вместе с альтернативным значением поля Location, чтобы пользователь со стороны клиента мог получить доступ к запрашиваемому ресурсу, используя метод GET.
- 304. Not Modified (файл не изменялся) – ошибка возникает, если клиент запросил определенный файл, указав специфичные атрибуты времени модификации, но сервер не обнаружил каких-либо изменений с момента его загрузки.
- 305. Use Proxy (необходимо использовать прокси-сервер) – этот код выводится сервером, когда для того, чтобы получить доступ к нему, нужно использовать прокси-сервер. Адрес последнего указывается в поле Location. Код могут использовать только базовые серверы (не прокси).
- 307. Temporary Redirect (временное перенаправление) – код возникает, когда запрашиваемый файл или ресурс становится доступен по другому адресу. Часто происходит автоматическое перенаправление.