Коды статуса и ошибок HTTP похожи на короткое сообщение от сервера, которое выводится в верхней части веб-страницы. На самом деле это не часть веб-страницы. Это сообщение, возвращаемое при обращении к серверу, позволяет узнать, как обстояли дела, когда сервером был получен запрос на просмотр страницы.
Такие сообщения возвращаются каждый раз, когда браузер взаимодействует с сервером, даже если вы не видите их. Коды статуса HTTP являются бесценным инструментом для диагностики и исправления ошибок, возникших в конфигурации сайта.
В этой статье представлены наиболее распространенные коды статуса и коды ошибок.
- Откуда они берутся?
- Классы кодов статуса HTTP
- Список кодов статуса HTTP
- Код статуса 200 (код страницы 200)
- Коды статуса 300
- Коды статуса 400
- 429 слишком много запросов (http error 429)
- Коды статуса 500
- Ошибка при установлении соединения с базой данных
- Более подробная информация о кодах статуса HTTP
Каждый раз, когда вы кликаете по ссылке или вводите URL-адрес и нажимаете «Enter», браузер отправляет запрос на сервер. Он получает и обрабатывает запрос, а затем отправляет обратно запрашиваемые ресурсы вместе с HTTP-заголовком.
Коды статуса доставляются в браузер в HTTP-заголовке. Хотя вы их не видите. Но когда что-то пошло не так, пользователю отображается код статуса в браузере. Это способ сервера сказать: «Что-то не так. Вот код, который объясняет, что именно».
Код статуса HTTP Google 404
Чтобы увидеть коды статуса, которые браузер обычно не отображает, потребуются специальные инструменты. Для популярных браузеров, таких как Chrome и Firefox, доступны соответствующие расширения. Также существует много сервисов для отображения заголовков, например Web Sniffer.
Чтобы увидеть код статуса HTTP с помощью одного из этих инструментов, найдите строку, расположенную в верхней части отчета, в которой указано: “Status: HTTP/1.1”. После нее указан код статуса, возвращаемый сервером.
Коды статуса HTTP разделены на 5 классов:
- 100: информационные коды, указывающие, что запрос, инициированный браузером, продолжается.
- 200: коды успешного запроса. Возвращаются, когда запрос браузера был успешно получен, распознан и обработан сервером.
- 300: коды перенаправления возвращаются, когда запрошенный ресурс заменен новым.
- 400: http-ошибки, возникающие на стороне клиента и указывающие на наличие проблемы с запросом.
- 500: коды ошибок сервера, указывающие, что запрос был принят, но ошибка на сервере не позволила выполнить его.
Существует более 40 различных кодов статуса сервера. Но тех, с которыми вы будете сталкиваться регулярно меньше дюжины. Ниже приводится список кодов статуса HTTP:
200: «Все в порядке». Это код, который возвращается, когда веб-страница или ресурс действуют точно так, как ожидается.
301: «Запрошенный ресурс был перемещен навсегда». Этот код возвращается, когда веб-страница или ресурс заменяется другим ресурсом. Он используется для постоянного редиректа URL-адресов.
302: это http-ошибка «Запрошенный ресурс перемещен, но был найден». Этот код используется для указания того, что запрошенный ресурс был найден, но не в том месте, где это ожидалось. Он используется для временного редиректа URL-адресов.
304: «Запрошенный ресурс не был изменен с момента последнего обращения к нему». Сообщает, что ресурсы, хранящиеся в кэше браузера, не изменились. Он используется для ускорения доставки веб-страниц за счет повторного использования ранее загруженных ресурсов.
401: «Не авторизован». Возвращается сервером, когда для доступа к целевому ресурсу отсутствуют валидные учетные данные.
http-ошибка 403: «Доступ к этому ресурсу запрещен». Возвращается, когда пользователь пытается открыть ресурс, для которого у него нет прав доступа. Например, попытка просмотра неавторизованным пользователем контента, защищенного паролем, может привести к ошибке 403.
404: «Запрошенный ресурс не найден». Наиболее распространенное сообщение об ошибке. Означает, что запрошенный ресурс не существует и сервер не знает, существовал ли он когда-либо.
405: «Метод не разрешен». Генерируется, когда хостинг-сервер (исходный сервер) поддерживает полученный метод, но целевой ресурс отсутствует.
406: «Неприемлемый ответ». Запрошенный ресурс способен генерировать только контент, неприемлемый в соответствии с заголовками Accept, отправленными в запросе.
408: «Время ожидания сервером поступления остальной части запроса из браузера истекло». Генерируется, когда сервер прерывает обработку после истечения времени ожидания полного запроса от браузера. Другими словами, сервер не получил полный запрос, отправленный браузером. Одной из возможных причин может быть перегрузка сети, приводящая к потере пакетов между браузером и сервером.
410: «Запрошенный ресурс отсутствует и не будет возвращен». Подобен коду 404 «Не найден», за исключением того, что код статуса 410, указывает, что данный статус ожидается на постоянной основе.
429: это http-ошибка «Слишком много запросов». Генерируется сервером, когда пользователь отправил слишком много запросов в заданный промежуток времени (ограничение по скорости). Иногда причиной ошибки могут быть боты, пытающиеся получить доступ к сайту. В этом случае может потребоваться изменение URL-адреса входа в панель администрирования WordPress.
499: «Клиент закрыл запрос». Возвращается NGINX, когда клиент закрывает запрос, пока NGINX все еще обрабатывает его.
500: «На сервере возникла ошибка, и запрос не мог быть завершен». Общий http-код, который также называют «внутренняя ошибка сервера». На сервере что-то пошло не так и запрошенный ресурс не был доставлен. Этот код генерируется сторонними плагинами, при сбоях PHP-кода или подключения к базе данных.
501: «Не реализовано». Эта ошибка указывает на то, что сервер не поддерживает функции, необходимые для выполнения запроса. Ошибка почти всегда связана с самим сервером, и для ее решения нужно обратиться в службу поддержки хостинг-провайдера.
502: это http-ошибка «Некорректный шлюз». Означает, что один сервер получил неверный ответ от другого. Иногда запрос занимает слишком много времени, и поэтому отменяется или удаляется сервером, а соединение с базой данных прерывается.
503: это http-ошибка «В данный момент сервер не может обработать запрос». Запрос не может быть обработан прямо сейчас. Этот код возвращается перегруженным сервером, который не может обрабатывать новые запросы.
504: «Сервер, действующий как шлюз, не смог дождаться ответа от другого сервера». Возвращается, когда в обработке запроса было задействовано два сервера, и на первом сервере истекло время ожидания ответа от второго.
В приведенном выше списке поясняется большинство кодов статуса HTTP, с которыми вы можете столкнуться. Вот ресурсы, на которых можно более подробно узнать о редких кодах статуса HTTP, не рассмотренных в нашей статье:
- Полный список кодов статуса HTTP — Википедия;
- Определения кодов статуса — Internet Engineering Task Force (IETF);
- RFC 7231.
Если вы собираетесь заниматься web-технологиями, созданием и содержанием сайтов или их раскруткой, нужно научиться общаться с ними.
Сервера страниц содержат специальные коды для сообщения пользователю о возникшей неполадке. Они также сообщают сервису важную информацию, благодаря которой он знает, как ему действовать в дальнейшем.
Общение между сайтом и его создателем – процесс крайне важный, и именно от него зависит популярность и посещаемость ресурса, поскольку на неработающую страницу спроса не будет.
В связи с этим администратор должен реагировать мгновенно и понимать, на что именно жалуется или о чем сообщает его сервис (знать все коды ответа и ошибки сервера), чтобы не терять клиентов.
Для этого были разработаны специальные коды, которыми сервер не только сообщает о своей неработоспособности посетителю, но и говорит хозяину, в каком направлении искать ошибку или неполадку.
Основные ошибки – коды и их значения
Как правило, вывод ошибки на сайте не всегда означает проблему. Кроме того многие информационные сообщения не отображаются, и увидеть их можно только в логах работы сервера.
Каждое из них имеет свое значение. Самые известные коды ответа сервера видел каждый пользователь глобальной сети.
Наиболее известные – 404 и 301, но о многих из них большинство сетевых администраторов даже не слышали, поскольку такие сообщения несут чисто информационный характер.
По назначению ответы делятся на пять категорий и распределяются сотнями 100-500. Различают следующие 5 типов кодов:
- Информационные сведения;
- Подтверждение и принятие действия или команды;
- Redirect или перенаправления;
- Ошибка со стороны клиента;
- Неполадки и сообщения со стороны сервера.
Большинство ошибок имеют информационных характер независимо от принадлежности к категории. Однако именно это и помогает выявить нарушение в работе между клиентом и сервером, а также быстро сориентироваться в связующих между ними.
Сообщения информационного характера: 1ХХ
Такие ответы сервера наиболее встречающиеся. Часто они просто сообщают о том, что он включен или выключен, а также могут содержать более подробную информацию о подключенных опциях и используемых сервисах, общей работе и данных о трафике.
Продолжение действия (Continue server code): 100
Как ни странно, это не ошибка и не неполадка. Видеть это сообщение в коде – удовольствие для системного администратора.
100 Continue означает стабильную работу в штатном режиме. То есть сбоев в обработке информации по запросу не было, и все они обрабатывались сервером при обращении клиента.
Сообщением 100 сервис говорит о запуске и продолжении обработки данных по запросу, пока все пакеты не будут переданы.
Оно используется как начало соединения. И так будет до окончания обработки и завершения сессии.
Протоколы переключений (Switching Protocols): 101
Это еще одно сообщение, которое имеет только информационный характер. Такое можно обнаружить в логах любого сервера или базы данных, к которой обращается сетевой ресурс.
101 Switching Protocols означает, что со стороны клиента произошла попытка смены протокола для обращения к сайту. Сервер должен дать согласие на это, если кончено он поддерживает обращение с таким типом протокола.
Очень часто можно увидеть подобные сообщения в записях, когда пользователь использует очень старый браузер, который не умеет работать с современными версиями HTML, или же при обращении к сервису по защищенному протоколу, когда таковой не является принятым по умолчанию, но поддерживается для ответа, например, https:// вместо http:// или наоборот.
Сообщения подтверждения и принятия (Success): 2ХХ
Специальный тип кода, который используется, чтобы сообщать о разрешениях сервера на исполнение запросов или использование частей сервиса и протоколов.
В случае если отправленный клиентом запрос поступил на обработку, и процесс запущен, в логах сообщается об этом. Также в такой записи могут содержаться данные заголовков или части записей, если они разрешены сервисом.
Все хорошо (ОК): 200
Сообщение подобного характера говорит о том, что передача данных завершена успешно, все запросы были обработаны, и всё нормально.
200 ОК – наиболее популярный и известный код любого лога. Он крайне незаметен, поскольку если все хорошо, то и обращать внимание незачем.
Изначально подобный способ ведения системных записей использовался операционными системами *.NIX, которые при загрузке общались с администратором приблизительно также, выдавая код «ОК» или «Fail» для каждой ожидающей загрузки службы.
Создано (Created): 201
Код используется по назначению, указанному в названии. Как правило, подобное сообщение означает создание чего-то нового в процессе или по завершении его обработки и запроса.
Хорошим примером будет создание нового профиля пользователя по окончании регистрации. В таком случае будет несколько записей 201 Created при создании имени пользователя, пароля, профиля, пользовательской страницы.
Если вдруг по какой-то причине ресурс не может быть создан, то появится следующий порядковый код.
Принято (Accepted): 202
Этот код означает, что запрос принят и находится в процессе или ожидании обработки сервером, например, когда нагрузка на ресурс очень велика.
В этом состоянии сессия может обрываться при невыполнении определенного условия или будет принята и выполнена позже.
Изначально запрос не имеет обязательного исполнения, поэтому он может быть отложен. При этом в ожидании клиента вовсе нет необходимости, поскольку передача кода может быть осуществлена через очень длительное время.
Неактуальные данные (Non-Authoritative): 203
Запись лога сообщает, что сервер принял запрос, и его обработка прошла успешно. Однако данные могут быть неактуальными и несвежими, поскольку были взяты из второстепенного источника.
Сообщение Non-Authoritative 203 часто используется вместо 200, когда запрос ведет к информации, находящейся в архивах (для сокращения объема и увеличения обработки скорости запроса) или в резервных базах.
Очень часто под этим кодом могут проходить и нормальные, стабильные запросы, когда остальные данные были восстановлены после сбоя, и сервером найдены мелкие несоответствия записям, например, по времени или датам.
Нет содержимого (No Content): 204
Таким образом, сервер сообщает, что от клиента были получены данные запроса, он понял информацию и обработал её.
Но согласно полученным данным, ему нечем ответить, поскольку нет содержимого, которое соответствует полученному запросу. То есть данных для этого пользователя не существует.
Используется код состояния HTTP 204 No Content в основном для того, чтобы не запрещать обработку сессий скриптов, при этом документ может оставаться неизменным.
Код не несет сообщения и не содержит его, включается сразу под заголовком в любую пустую строку, которая окажется первой. Нужен он тогда, когда необходимо авторизоваться или осуществить другие действия без обновления самой страницы.
Сбросить содержимое (Reset Content): 205
По смыслу запись 205 Reset Content аналогична предыдущей. Однако в этом состоянии сервер требует от клиента обновления страницы.
Даже если запрос успешно обработан и всё выполнено, может возникнуть необходимость очистки данных или их самостоятельного удаления пользователем, например, после прохождения регистрации при последующей идентификации на сервере.
Также используется для очистки заполненной формы в целях безопасности, то есть при обновлении данные исчезают и верифицируются только при новой авторизации.
Частичный сброс содержимого (Partial Reset): 206
Код ошибки сервера, когда он возвращает лишь часть содержимого контента, которое соответствует запросу. Зачастую используется как дополнение к параметрам кэширования страницы для ускорения отображения и обработки её данных.
То есть информация выводится поэтапно, тем самым экономя время пользователя и трафик загрузки, если обработанный запрос не является правильным.
Такой вариант обработки часто используется на многофункциональных и тяжелых сайтах, когда при переходе на следующую страницу или при обработке нового запроса данные обновляются только в той части, где это необходимо.
Многозадачный статус (Multi-Status): 207
В таком сообщении сервер обрабатывает сразу несколько исполняемых запросов и операций, сохраняя и объединяя их в один файл формата .Xml.
В таком виде логирование более удобно для исследования сетевым администратором и, как правило, разделено по типам и форматам вывода кодов или причинам, по которым они возникали.
Redirect и опции перенаправления: 3ХХ
Категория сообщений сервиса перенаправления сообщает, откуда и куда был направлен пользователь, а также указывает причину осуществленного действия.
Как правило, запрос клиента состоит не только из текстовой информации, по которой он ищет контент, но и из ссылки реферера, которая указывает откуда и с какими параметрами посетитель перешел на сайт.
Это очень важно для определения целей, с которыми клиенты идут на ваш сайт или на конкретную его страницу, опцию.
Это помогает настроить функцию перенаправления таким способом, чтобы максимально увеличить отдачу, предоставляя клиенту как можно более релевантные страницы и экономя на их раскрутке.
Очень просто привести пример на геотаргетинге. Если посетитель пришел по запросу: «купить стиральную машину недорого», но он не интересует вас как покупатель, потому как проживает в другой стране, вы можете его продать или обменять, тем самым увеличивая прирост потенциальных покупателей с других сайтов или дополнительно монетизируя ваш ресурс.
Но можете и направить его на страницы доставки вашего сервиса или партнера – опять же не потеряете посетителя просто так.
Также опция перенаправления очень излюблена теми, кто зарабатывает на дорвеях. Но кроме всего этого она служит незаменимым помощником в случае, когда сайт переезжает на другой хостинг (в процессе ремонта) или поменял домен.
Один из многих (Multiple Choices): 300
Интересный код, который сообщает посетителю о переезде ресурса, но вместо автоматического перенаправления предлагает клиенту выбрать один из сайтов, который наиболее подходит его интересам.
Такой вид запроса используется в том случае, когда релевантная ссылка ведет не на соответствующий контент, а на каталог, в котором он находится.
То есть указанный путь не до конца прописан пользователем или специально так обработан сервером.
Можно привести пример, когда на сайте есть множество товаров разных видов и моделей, а посетитель попал туда по запросу «видео». Тогда сервером автоматически выдается ответ, и предоставляются на выбор страницы с видеокамерами и видеоплеерами.
Перемещена на постоянной основе (Moved Permanently): 301
Это самый часто используемый код. Именно он сообщает, что страница, на которую хотел попасть посетитель, более не существует, и она перемещена или удалена. Также это относится и к ссылкам, когда они ведут на несуществующий сайт.
Есть еще одно применение, которое интересует администраторов рекламных площадок. Это специально размещенные страницы сайта с подробным описанием какого-либо товара, но ссылка специально указана неверно.
Поэтому сервер выводит сообщение 301 и перенаправляет на товар без описания (используется для экономии места теми, кто продвигает продажи товаров текстами копирайтеров).
Подробно про 301 редирект прочитаете из предыдущей стати «Как настроить на сайте 301 редирект».
Страница обнаружена (Found): 302
Код означает временное перемещение ресурса. Он часто используется для тестирования сторонних хостингов или серверов на предмет устойчивости при большом количестве запросов или dDOS атаке.
Как правило, сообщение содержит информацию о причинах временного изменения адреса и прямой ссылке на страницу, релевантную запросу пользователя.
Увидеть другую (See Other): 303
Код ответа сервера 303 используется для вывода сообщения посетителю о том, что другая страница более релевантная для его запроса, чем та, на которую он сейчас попал.
То есть пользователь попал не на ту страницу, которая ему на самом деле нужна, и код указывает ему, по отношению к какому адресу правильнее сформировать запрос.
Как правило, эту опцию используют тогда, когда нужно перенаправить данные исполняемого скрипта в процессе сессии на выбранный сайт для POST обработки.
Не подвергался изменениям (Not Modified): 304
Код состояния HTTP 304 Not Modified означает, что исполнение запроса пользователя на этой странице интересует только в том случае, если произошли какие-либо изменения. Иначе используется старая версия из кэша.
При этом обращения к серверу от клиента не происходит вообще, а если сессия активируется, то будет перенаправлена.
Опция очень удобна, поскольку, используя один из параметров внесения изменений, посетитель может отслеживать и наблюдать за новостями ресурса со стороны клиента. Со стороны сервера это позволяет заинтересованного пользователя перекидывать на измененные документы при необходимости (по запросу об изменениях).
Доступ к странице при помощи прокси (Use Proxy): 305
Сообщение указывает, что доступ к ресурсу не возможен, если вы не используете прокси сервер. Эта опция часто нужна для идентификации и разграничения уровней доступа пользователей к определенным частям сайта.
Также часто используется при доступе через html к базам данных, когда определенные записи выдаются лишь тем пользователям, настройки прокси которых (включая порт, адрес, пользователя и пароль) указаны соответствующим образом.
Включите прокси (Switch Proxy): 306
Выдавая подобное сообщение, сервер должен был говорить клиенту: «выставь указанные параметры прокси, чтобы пройти по запросу на страницу».
Однако на данный момент опция не используется за ненадобностью.
Временное перемещение (Temporary Redirect): 307
Используется при необходимости временного замещения одной страницы на другую и перенаправления на неё пользователя. Однако код 307 немного отличается по функциональности от 302.
В основном это касается того, что запросы продолжаются относительно страницы-реферера, то есть с той, с которой происходит перенаправление. Таким образом, сессия не будет разрываться до тех пор, пока на иное не укажет сервер.
Ошибки со стороны клиента: 4ХХ
Коды состояния сервера четвертой категории нужны для определения клиентских ошибок, например в том случае, когда обработанный запрос не может быть принят по вине посетителя (отказ браузера или блокировка фаерволла).
Неверный запрос (Bad Request): 400
Код применяется, когда клиент неверно задал запрос, к примеру, допустил синтаксическую ошибку, а сервер не в состоянии её обработать.
Сообщения 400 Bad Request используется при серьезных нарушениях в тексте, когда система вовсе не может разобрать, что именно имеется в виду, также может быть использовано, когда страница, соответствующая запросу, переехала, но функция перенаправления не была использована.
Не авторизирован (Unauthorized): 401
Часто используется на сервисах, предоставляющих платный доступ, или форумах, просмотр некоторых тем которых доступен только для авторизированных пользователей.
При этом посетитель будет получать сообщение 401 Unauthorized с предложением пройти регистрацию.
Также код может быть использован при неверном или частичном прохождении процесса идентификации или регистрации.
Например, когда сервер разрешает доступ с логином и паролем, но пока они не подтверждены администратором, не пускает на некоторые страницы сайта.
Необходима оплата (Payment Required): 402
Предполагалось использование этого кода для отказов неоплаченного доступа, например, с последующим перенаправлением на страницу системы электронных платежей.
На текущий момент код практически не нашел применений, однако некоторые известные сервисы всё же используют его, хоть и не совсем по назначению.
Всемирно известное хранилище видео данных YouTube использует код 402, когда активность пользовательских запросов вызывает подозрение.
В этом случае, вызывается опция, активирующая скрипт введения каптчи (CAPTHA).
Запрещен (Forbidden): 403
Код применяется при принятии и обработке процесса для ответа пользователю отказом, в праве на просмотр страницы.
Как правило, применяется для того, чтобы закрыть ресурсы администратора или другие сведения, которые имеются, но не должны просматриваться клиентскими браузерами ни при каких обстоятельствах.
Не найден (Not Found): 404
Такая проблема широко распространена. Она несет в себе информацию о прекращении существования страницы.
При этом запрос со ссылкой остался и будет существовать, пока он автоматически не удалится, или вместо него не появится другая страница, возможно не релевантная.
Как создать на сайте 404 страницу и перенаправлять не нее посетителей читайте в этой статье.
Если сайт действительно был удален, или его адрес изменился, как правило, используют функцию редиректа.
Однако если речь идет о домене, который перепродается регистрационной компанией в случае отсутствия оплаты, то она автоматически устанавливает перенаправление на нужные ресурсы до продажи домена.
Способ не приемлем (Method Not Allowed): 405
Ошибка используется при неправильном запросе к определенному обработчику, например, когда функция скрипта позволяет оперировать только переменной GET, а запрос от клиента приходит с командой POST.
Так как исполнение невозможно, то сервер сообщает об этом при помощи кода 405.
Не допустимый (Not Acceptable): 406
Используется, когда браузер клиента не способен отобразить ту или иную часть страницы при неправильных настройках, например, когда параметрами отображения браузера запрещена обработка запросов, желающих хранить данные на ПК пользователя.
Клиентская программа-обозреватель не дает принимать информацию от сервера, но при этом передает запрос на отображение.
Неверная аутентификация на прокси-сервере (Proxy Authentication Required): 407
Код немного подобен 401, однако тут речь идет не о правильности сервера и его использовании, а именно об авторизации на прокси посредством логина и пароля.
Сообщение работает, когда невозможно передать данные из-за неверных параметров прокси-сервера.
Время ожидания запроса истекло (Request Timeout): 408
Данный код применяется, если сервер не получает от клиента ожидаемый запрос. Похожая ошибка выдается при проблемах в соединении, когда отправленные пакеты не достигают цели.
Со стороны клиента что угодно может блокировать пакеты, отправляющие запрос, начиная от вирусов и заканчивая проблемами с хостингом.
Проблема с обращением к серверу (Conflict): 409
Сообщение выдается сервером при попытке замены более новой копии файла или архива на более старую или неактуальную.
Также конфликт может быть вызван использованием разных конфигурационных файлов баз данных.
Запрос уже ушел (Gone): 410
Означает, что ранее ссылка была доступна по данному запросу, и он обрабатывался, однако теперь удален или перемещен, а серверу неизвестно, что именно с ним произошло.
Длина запроса (Length Required): 411
Такая проблема сервера возникает при клиентском запросе, который содержит длину отображаемого контента, тогда как при обработке это не может соответствовать действительности.
Условие нарушено (Precondition Failed): 412
Код применяется при нарушении одного из условий, необходимых для выполнения требования. При этом он может быть обработан частично, если условие не задано как критическое.
Сервер может сообщать, что такой запрос не подходит именно этому ответу.
Длина запроса слишком велика (Request Entity Too Large): 413
Используется при понятном серверу требовании, однако в параметрах указано ограничение на обрабатываемую информацию.
Следует уменьшить размер фразы для поиска нужного контента.
Длина ссылки запроса слишком велика (Request-URL Too Long): 414
Необходим при использовании слишком длинных ссылок при преобразовании и формировании сложных запросов.
Если сервер не способен их обработать, он выдает сообщение 414.
Неподдерживаемый формат (Unsupported Media-Type): 415
Используется при попытке пользователя отправить запрос на обработку файла, формат которого не поддерживается или запрещен к открытию данному типу учетных записей.
Например, когда открытие jpg картинки доступно только для администратора или зарегистрированного посетителя.
Недоступность диапазона (Requested Range Not Satisfiable): 416
Нужен серверу для отказа в запросе к той части, которая имеет размер. Используется для выявления несоответствий при проверке файлов конфигураций.
Если добавлены лишние строки, размер будет изменен, и ошибка 416 сообщит администратору об этом.
Ожидание прервано (Expectation Failed): 417
Сообщение говорит, что в клиентском запросе возникла ошибка, и он не может быть нормально обработан.
Процесс не сможет запуститься и может остаться как зависшая в ожидании сессия, поскольку неверно заполнено поле Expect.
Я чайник (I’m a teapot): 418
17 лет назад это сообщение было разработано ради смеха и использовалось как шутка в день смеха 1 апреля. Современные http обработчики не воспринимают его.
Невероятный объект (Unprocessable Entity): 422
Сервер таким образом сообщает, что он принял запрос, прочитал и понял его, но какая-то ошибка мешает правильно его обработать.
Наиболее вероятно возникновение семантической ошибки в записи, что не дает завершить действие, хоть и понятно, что нужно выполнить.
Заперто (Locked): 423
Метод, которым вы обращаетесь к серверу клиентским запросом, запрещен и системным администратором.
Как правило, такой вид блокировок употребляется для того, чтобы посетитель прошел регистрацию и верификацию на сервере.
Плохая зависимость (Failed Dependency): 424
Запрос от посетителя был прерван из-за невыполнения других условий для совершения действия.
Может использоваться при отказе от подтверждения действия, например, при отрицательном ответе на вопрос: есть ли вам «18», процесс регистрации не сможет быть завершен и сервер сообщит об этом.
Неупорядоченный каталог (Unordered Collection): 425
Используется при попытке доступа к данным, которые были переведены в статус «черновик», то есть находящимся в процессе редактирования или внесения изменений.
Ссылка в это время остается целой, однако пользовательский интерфейс отключен.
Обязательное обновление запроса (Upgrade Required): 426
Указывает клиенту, что протокол его браузера безнадежно устарел и сообщает о невозможности обработать такой запрос.
Необходимо использовать более новую версию или другой обозреватель, в котором поддержка включена.
Условия предварительного воздействия (Precondition Required): 428
Указывает на то, что без выполнения определенных условий невозможно завершение и обработка операции. Чаще всего используется как предупреждение в случае, когда идет одновременное редактирование ресурса или его части, и запрос на его просмотр.
В это время существуют две версии процесса: та, что запущена и обрабатывается на данный момент, находится в кэше и постоянно обновляется, в то же время другая – это первоначальная копия ресурса.
В результате серверу непонятно, какой из ответов возвращать, поэтому происходит конфликт.
Слишком много обращений (Too Many Requests): 429
Используется, когда клиент превышает количество указанных запросов, к примеру, пытаясь подобрать пароль или неправильно ввести каптчу.
Также код необходим для сообщений о попытке взлома сервера методом dDOS (множественные запросы или крупные пакеты, забивающие трафик к серверу или нагружающие его процессорную мощность) или брутфорсом (подбор паролей, приемлем при взломах почтового ящика).
Заголовок поля очень длинный (Request Header Fields Too Large): 431
Код ошибки говорит о том, что клиент использует слишком большую длину запроса, и при его уменьшении обработка возможна.
Нет ответа (No Response): 444
Применяется как сообщение о том, что посетителю на запрос было отказано в получении ответа.
В этом случае сервер отказался от обработки, подозревая, что запрос вызван вирусным ПО или хакерской атакой.
Готов после… Retry With (Microsoft): 449
Код взят в употребление компанией Майкрософт как ответ пользователю на неверный запрос или его части.
Он говорит о том, что изменив характеристики и повторив запрос правильно, клиент получит обработку или исполнение указанного действия.
Заблокировано при помощи родительского контроля (Blocked by Windows Parental Controls (Microsoft)): 450
Используется как сообщение от ресурсов, которые были заблокированы на персональных компьютерах при помощи программного обеспечения.
Чаще всего необходим для сообщения о том, что запрос выходит за рамки разрешенные параметрами родительского контроля, осуществляемым при помощи штатных средств Microsoft Windows.
Недоступно по причинам нелегальности (Unavailable For Legal Reasons): 451
Сообщение крайне популярно на пиратских сайтах, распространяющих взломанный контент, а также при нарушениях цензуры или моральной этики.
Часто используется уже после блокировки правительством или такими органами, как Росскомнадзор.
Ошибки со стороны сервера: 5ХХ
Коды состояния HTTP 5й серии призваны указывать на проблемы со стороны обработки сервером. Они используются в то время, когда запрос, отправленный пользователем, правильно сформирован и не содержит лишних и неверных данных.
Однако сервер не в состоянии на него ответить. Как правило, это сопровождается сообщением, выводимым в обозревателе клиента, благодаря которому посетитель может сориентироваться, почему ресурс ничего не ответил.
Ошибка внутри сервера (Internal Server Error): 500
Сообщение говорит только о том, что внутри программного обеспечения сервера произошла ошибка. Конкретной проблемы данный код не определяет и выяснить из-за чего произошел сбой достаточно тяжело.
Вероятнее всего произошло обращение по несуществующей ссылке или запрос на объект, которого никогда не было.
Функция не реализована (Not Implemented): 501
Ошибка вызвана непринятием сервера вашего запроса. Она возникает потому что некоторые из протоколов не реализованы или специально запрещены, обработка не может быть завершена нормально.
Неверный шлюз (Bad Gateway): 502
Данный код сообщения выводится, когда сервер является промежуточным звеном, и дальнейший доступ через него запрещен или невозможен.
Если шлюз или прокси сервер отказывает в доступе по причинам несогласованности протоколов запроса, то такое сообщение ошибки сервера выводится на экран пользователя.
Сервер недоступен (Server Unavailable): 503
Сервер может отказать посетителю в обработке запроса или процесса по нескольким причинам.
Это может быть техническая неисправность, проблема с сервисом хостинга или перегрузка количеством других запросов, обрабатываемых в это время.
Время ожидания шлюза истекло (Gateway Timeout): 504
Код используется, когда промежуточный сервер между двумя другими не дает ответа, блокируя пакеты и тем самым превышая время, отведенное на запрос.
Чаще всего встречается в случаях, когда сервер сам является шлюзом или подключается к нему для передачи информационных данных.
Версия протокола не может быть использована (HTTP Version Not Supported): 505
Необходима в тех случаях, когда в программе-обозревателе не соответствует версия HTTP указанная сервером. Проблема возникает либо при использовании очень старых браузеров или неправильно заданных запросов.
Как вариант – доступ предоставляется через защищенный протокол HTTPS, а клиент задает HTTP вручную или переходит по такой ссылке и наоборот.
Вариант не устраивает (Variant Also Negotiates): 506
Сервер может задействовать 506 ошибку, когда в результате сбоя значение обработки запроса указывает само на себя. Зачастую это свидетельствует о неверной настройке серверной части или маршрутизации.
Для хранения недостаточно места (Insufficient Storage): 507
Каждый запрос кешируется, а значит, требует определенного пространства на жестком диске сервера. Если он забит неверно настроенными логами или другим кешем, и места недостаточно, то ответ последует в виде ошибки 507.
Лимит пропускной способности исчерпан (Bandwidth Limit Exceeded): 509
Очень важное сообщение для тех, кто использует бесплатный вид хостинга. Остальные, даже дешевые варианты размещения, крайне редко ограничивают сайты в потреблении трафика.
Однако на всякий случай каждый веб-дизайнер популярной площадки должен знать об этой ошибке, которая говорит о том, что лимиты используемого трафика превышены.
Запрещен к распространению (Not Extended): 510
Если серверу не предоставлено достаточно данных о клиенте, он отказывает ему как неизвестному или неопознанному посетителю в предоставлении информации.
Это означает, что в запросе должно быть больше информации, или передаваемые пакеты идут через прокси сервер, который их фильтрует, в результате чего нужные данные не попадают по назначению.
Авторизация в сети не пройдена (Network Authentication Required): 511
Код популярен и часто используется в общедоступных сетях. Может выдаваться по окончании выделенного клиенту времени (часто применяется в кафе и фастфудах).
Также используется у некоторых провайдеров для веб идентификации или в рекламных целях (доступ выдается ненадолго и бесплатно, чтобы удивить клиента скоростью и заманить его подключиться на постоянной основе).
Заключение
Оперируя сообщениями сервера, администратор всегда может увидеть, в чем причина возникновения неполадок или снижения посещаемости ресурса.
Также он сможет посмотреть, кто и как перенаправляется на необходимые ресурсы, наблюдать за поведением пользователей на страницах сайта, проследить за обменом данными между клиентами и сервером.
HTTP status codes are like short notes from a server that get tacked onto a web page. They’re not actually part of the site’s content. Instead, they’re messages from the server letting you know how things went when it received the request to view a certain page.
These kinds of messages are returned every time your browser interacts with a server, even if you don’t see them. If you’re a website owner or developer, understanding HTTP status codes is critical. When they do show up, HTTP status codes are an invaluable tool for diagnosing and fixing website configuration errors.
This article introduces several server status and error codes, and explains what they reveal about what’s happening on the server behind the scenes.
Let’s dive in!
Prefer to watch the video version?
What Are HTTP Status Codes?
Every time you click on a link or type in a URL and press Enter, your browser sends a request to the webserver for the site you’re trying to access. The server receives and processes the request, and then sends back the relevant resources along with an HTTP header.
HTTP status codes are delivered to your browser in the HTTP header. While status codes are returned every single time your browser requests a web page or resource, most of the time you don’t see them.
It’s usually only when something goes wrong that you might see one displayed in your browser. This is the server’s way of saying: “Something isn’t right. Here’s a code that explains what went wrong.”
If you want to see the status codes that your browser doesn’t normally show you, there are many different tools that make it easy. Browser extensions are available for developer-friendly platforms such as Chrome and Firefox, and there are many web-based header fetching tools like Web Sniffer.
To see HTTP status codes with one of these tools, look for the line appearing near the top of the report that says “Status: HTTP/1.1”. This will be followed by the status code that was returned by the server.
Understanding HTTP Status Code Classes
HTTP status codes are divided into 5 “classes”. These are groupings of responses that have similar or related meanings. Knowing what they are can help you quickly determine the general substance of a status code before you go about looking up its specific meaning.
The five classes include:
- 100s: Informational codes indicating that the request initiated by the browser is continuing.
- 200s: Success codes returned when browser request was received, understood, and processed by the server.
- 300s: Redirection codes returned when a new resource has been substituted for the requested resource.
- 400s: Client error codes indicating that there was a problem with the request.
- 500s: Server error codes indicating that the request was accepted, but that an error on the server prevented the fulfillment of the request.
Within each of these classes, a variety of server codes exist and may be returned by the server. Each individual code has a specific and unique meaning, which we’ll cover in the more comprehensive list below.
Why HTTP Status Codes and Errors Matter for Search Engine Optimization (SEO)
Search engine bots see HTTP status codes while they’re crawling your site. In some cases, these messages can influence if and how your pages get indexed, as well as how search engines perceive the health of your site.
Generally speaking, 100- and 200-level HTTP status codes won’t have much impact on your SEO. They signal that everything is working as it should on your site, and enable search engine bots to continue on their way. However, they aren’t going to boost your rankings either.
For the most part, it’s the higher-level codes that matter for SEO. 400- and 500-level responses can prevent bots from crawling and indexing your pages. Too many of these errors can also indicate that your site isn’t of high quality, possibly lowering your rankings.
300-level codes have a bit more complicated relationship with SEO. The main thing you need to know to understand their impact is the difference between permanent and temporary redirects, which we’ll cover in more detail in the relevant section below.
In a nutshell, however, permanent redirects share link equity from backlinks, but temporary ones do not. In other words, when you use temporary redirects for pages that have moved, you lose the SEO advantage of all the link building you’ve done.
Checking for HTTP Status Codes in Google Search Console
One way to monitor how Google perceives the HTTP status codes on your site is to use Google Search Console. You can view 300-, 400-, and 500-level status codes in the Coverage report:
This area of your dashboard shows four types of content on your site:
- Pages that return errors.
- Valid pages that have warnings.
- Resources that are valid.
- Content excluded from the index.
You may find pages with 300-, 400-, and 500-level HTTP status codes under the Excluded, Error, or Valid with warnings sections, depending on the type of code. For instance, 301 redirects may be listed under Excluded as Page with redirect:
400- and 500-level status codes will likely turn up under Error.
Another way to view HTTP status codes is by using the URL Inspection tool. If Google is unable to index a specific page due to an error, you’ll see that here:
For more tips on using Google Search Console, check out our comprehensive guide to the platform.
A Complete Guide and List of HTTP Status Codes
While there are over 40 different server status codes, you’ll likely encounter fewer than a dozen on a regular basis. Below, we’ve covered the more common ones, as well as a few of the more obscure codes you may still run across.
100 Status Codes
A 100-level status code tells you that the request you’ve made to the server is still in progress for some reason. This isn’t necessarily a problem, it’s just extra information to let you know what’s going on.
- 100: “Continue.” This means that the server in question has received your browser’s request headers, and is now ready for the request body to be sent as well. This makes the request process more efficient since it prevents the browser from sending a body request even though the headers have been rejected.
- 101: “Switching protocols.” Your browser has asked the server to change protocols, and the server has complied.
- 103: “Early hints.” This returns some response headers before the rest of the server’s response is ready.
200 Status Codes
This is the best kind of HTTP status code to receive. A 200-level response means that everything is working exactly as it should.
- 200: “Everything is OK.” This is the code that is delivered when a web page or resource acts exactly the way it’s expected to.
- 201: “Created.” The server has fulfilled the browser’s request, and as a result, has created a new resource.
- 202: “Accepted.” The server has accepted your browser’s request but is still processing it. The request ultimately may or may not result in a completed response.
- 203: “Non-Authoritative Information.” This status code may appear when a proxy is in use. It means that the proxy server received a 200 “Everything is OK” status code from the origin server, but has modified the response before passing it on to your browser.
- 204: “No Content.” This code means that the server has successfully processed the request, but is not going to return any content.
- 205: “Reset Content.” Like a 204 code, this means that how server has processed the request but is not going to return any content. However, it also requires that your browser resets the document view.
- 206: “Partial Content.” You may see this status code if your HTTP client (also known as your browser) uses ‘range headers’. This enables your browser to resume paused downloads, as well as to split a download into multiple streams. A 206 code is sent when a range header causes the server to send only part of the requested resource.
300 Status Codes
Redirection is the process used to communicate that a resource has been moved to a new location. There are several HTTP status codes that accompany redirections, in order to provide visitors with information about where to find the content they’re looking for.
- 300: “Multiple Choices.” Sometimes, there may be multiple possible resources the server can respond with to fulfill your browser’s request. A 300 status code means that your browser now needs to choose between them. This may occur when there are multiple file type extensions available, or if the server is experiencing word sense disambiguation.
- 301: “The requested resource has been moved permanently.” This code is delivered when a web page or resource has been permanently replaced with a different resource. It is used for permanent URL redirection.
- 302: “The requested resource has moved, but was found.” This code is used to indicate that the requested resource was found, just not at the location where it was expected. It is used for temporary URL redirection.
- 303: “See Other.” Understanding a 303 status code requires that you know the difference between the four primary HTTP request methods. Essentially, a 303 code tells your browser that it found the resource your browser requested via POST, PUT, or DELETE. However, to retrieve it using GET, you need to make the appropriate request to a different URL than the one you previously used.
- 304: “The requested resource has not been modified since the last time you accessed it.” This code tells the browser that the resources stored in the browser cache haven’t changed. It’s used to speed up web page delivery by reusing previously-downloaded resources.
- 307: “Temporary Redirect.” This status code has replaced 302 “Found” as the appropriate action when a resource has been temporarily moved to a different URL. Unlike the 302 status code, it does not allow the HTTP method to change.
- 308: “Permanent Redirect.” The 308 status code is the successor to the 301 “Moved Permanently” code. It does not allow the HTTP method to change and indicates that the requested resource is now permanently located at a new URL.
400 Status Codes
At the 400 level, HTTP status codes start to become problematic. These are error codes specifying that there’s a fault with your browser and/or request.
- 400: “Bad Request.” The server can’t return a response due to an error on the client’s end. See our guide for resolving this error.
- 401: “Unauthorized” or “Authorization Required.” This is returned by the server when the target resource lacks valid authentication credentials. You might see this if you’ve set up basic HTTP authentication using htpasswd.
- 402: “Payment Required.” Originally, this code was created for use as part of a digital cash system. However, that plan never followed through. Instead, it’s used by a variety of platforms to indicate that a request cannot be fulfilled, usually due to a lack of required funds. Common instances include:
- You’ve reached your daily request limit to the Google Developers API.
- You haven’t paid your Shopify fees and your store has been temporarily deactivated.
- Your payment via Stripe has failed, or Stripe is trying to prevent a fraudulent payment.
- 403: “Access to that resource is forbidden.” This code is returned when a user attempts to access something that they don’t have permission to view. For example, trying to reach password-protected content without logging in might produce a 403 error.
- 404: “The requested resource was not found.” This is the most common error message of them all. This code means that the requested resource does not exist, and the server does not know if it ever existed.
- 405: “Method not allowed.” This is generated when the hosting server (origin server) supports the method received, but the target resource doesn’t.
- 406: “Not acceptable response.” The requested resource is capable of generating only content that is not acceptable according to the accept headers sent in the request.
- 407: “Proxy Authentication Required.” A proxy server is in use and requires your browser to authenticate itself before continuing.
- 408: “The server timed out waiting for the rest of the request from the browser.” This code is generated when a server times out while waiting for the complete request from the browser. In other words, the server didn’t get the full request that was sent by the browser. One possible cause could be net congestion resulting in the loss of data packets between the browser and the server.
- 409: “Conflict.” A 409 status code means that the server couldn’t process your browser’s request because there’s a conflict with the relevant resource. This sometimes occurs due to multiple simultaneous edits.
- 410: “The requested resource is gone and won’t be coming back.” This is similar to a 404 “Not Found” code, except a 410 indicates that the condition is expected and permanent.
- 411: “Length Required.” This means that the requested resource requires that the client specify a certain length and that it did not.
- 412: “Precondition Failed.” Your browser included certain conditions in its request headers, and the server did not meet those specifications.
- 413: “Payload Too Large” or “Request Entity Too Large.” Your request is larger than the server is willing or able to process.
- 414: “URI Too Long.” This is usually the result of a GET request that has been encoded as a query string that is too large for the server to process.
- 415: “Unsupported Media Type.” The request includes a media type that the server or resource doesn’t support.
- 416: “Range Not Satisfiable.” Your request was for a portion of a resource that the server is unable to return.
- 417: “Expectation Failed.” The server is unable to meet the requirements specified in the request’s expect header field.
- 418: “I’m a teapot.” This code is returned by teapots that receive requests to brew coffee. It’s also an April Fool’s Joke from 1998.
- 422: “Unprocessable Entity.” The client request contains semantic errors, and the server can’t process it.
- 425: “Too Early.” This code is sent when the server is unwilling to process a request because it may be replayed.
- 426: “Upgrade Required.” Due to the contents of the request’s upgrade header field, the client should switch to a different protocol.
- 428: “Precondition Required.” The server requires conditions to be specified before processing the request.
- 429: “Too many requests.” This is generated by the server when the user has sent too many requests in a given amount of time (rate-limiting). This can sometimes occur due to bots or scripts attempting to access your site. In this case, you might want to try changing your WordPress login URL. You can also check out our guide to fixing a 429 “Too Many Requests” error.
- 431: “Request Header Fields Too Large.” The server can’t process the request because the header fields are too large. This may indicate a problem with a single header field, or all of them collectively.
- 451: “Unavailable for Legal Reasons.” The operator of the server has received a demand to prohibit access to the resource you’ve requested (or a set of resources including the one you’ve requested). Fun fact: This code is a reference to Ray Bradbury’s novel Fahrenheit 451.
- 499: “Client closed request.” This is returned by NGINX when the client closes the request while Nginx is still processing it.
500 Status Codes
500-level status codes are also considered errors. However, they denote that the problem is on the server’s end. This can make them more difficult to resolve.
- 500: “There was an error on the server and the request could not be completed.” This is generic code that simply means “internal server error”. Something went wrong on the server and the requested resource was not delivered. This code is typically generated by third-party plugins, faulty PHP, or even the connection to the database breaking. Check out our tutorials on how to fix the error establishing a database connection and other ways to resolve a 500 internal server error.
- 501: “Not Implemented.” This error indicates that the server does not support the functionality required to fulfill the request. This is almost always a problem on the web server itself, and usually must be resolved by the host. Check out our recommendations on how to resolve a 501 not implemented error.
- 502: “Bad Gateway.” This error code typically means that one server has received an invalid response from another, such as when a proxy server is in use. Other times a query or request will take too long, and so it is canceled or killed by the server and the connection to the database breaks. For more details, see our in-depth tutorial on how to fix the 502 Bad Gateway error.
- 503: “The server is unavailable to handle this request right now.” The request cannot be completed at this point in time. This code may be returned by an overloaded server that is unable to handle additional requests. We have a full guide on how to fix the 503 Service Unavailable Error.
- 504: “The server, acting as a gateway, timed out waiting for another server to respond.” This is the code returned when there are two servers involved in processing a request, and the first server times out waiting for the second server to respond. You can read more about how to fix 504 errors in our dedicated guide.
- 505: “HTTP Version Not Supported.” The server doesn’t support the HTTP version the client used to make the request.
- 508: “Resource Limit Is Reached” limits on resources set by your web host have been reached. Check out our tutorial on how to resolve “508 Resource Limit Is Reached” error.
- 509: “Bandwidth Limit Exceeded” means your website is using more bandwidth than your hosting provider allows.
- 511: “Network Authentication Required.” This status code is sent when the network you’re trying to use requires some form of authentication before sending your request to the server. For instance, you may need to agree to the Terms and Conditions of a public Wi-Fi hotspot.
- 521: “Web server is down.” Error 521 is a Cloudflare-specific error message. It means that your web browser was able to successfully connect to Cloudflare, but Cloudflare was not able to connect to the origin web server.
- 525: “SSL Handshake Failed“. Error 525 means that the SSL handshake between a domain using Cloudflare and the origin web server failed. If you are experiencing issues there are five methods you can try to easily fix error 525.
Where to Learn More About HTTP Status Codes
In addition to the HTTP status codes we’ve covered in this list, there are some more obscure ones you may want to learn about. There are several resources you can consult to read up on these rarer codes, including:
- This comprehensive list of HTTP status codes from Wikipedia.
- Status code definitions from the Internet Engineering Task Force (IETF).
- RFC 7231.
Knowing these status codes may help you resolve some unique issues while maintaining your own website, or even when you encounter them on other sites.
They might seem intimidating at first, but HTTP status codes are important to understand what’s happening on your site. Here’s a thorough list of those you should get familiar with! 📟🌐Click to Tweet
Summary
While they may seem confusing or intimidating on the surface, HTTP status codes are actually very informative. By learning some of the common ones, you can troubleshoot problems on your site more quickly.
In this post, we’ve defined 40+ HTTP status codes that you may encounter. From the milder 100- and 200-level codes to the trickier 400- and 500-level errors, making sense of these messages is crucial for maintaining your website and making sure it’s accessible to users.
Время прочтения: 10 мин.
Каждый из нас хоть раз сталкивался с ошибками, которые отображаться в клиентском браузере при попытке получить доступ к содержимому того или иного сайта. Технически это происходит так: сервер на каждый запрос браузера (или клиента) возвращает числовой код, указывающий на состояние ответа.
Код состояния HTTP — это стандартизированные трехзначные коды, которые веб-сервер возвращает в ответ на HTTP-запросы сетевых клиентов. Первая цифра указывает на класс состояния. В настоящее время выделено пять классов кодов состояния (в зависимости от которого нужно предпринимать определенные действия):
- Информационные (100–199).
- Успешные (200–299).
- Перенаправление (300–399).
- Ошибка клиента (400–499).
- Ошибка сервера (500–599).
Успешные и информационные ответы сервера остаются невидимыми, тогда как коды, обозначающие ошибку обработки запроса, выводятся на экран. В данной статье мы разберем основные стандартные виды ошибок и возможные причины их возникновения.
Ошибки класса 4** (400-499).
Коды состояния HTTP 400-499, как правило, указывают на возникновение ошибки на стороне клиентского браузера. Например, запрос несуществующей страницы или отсутствие достоверных сведений для проверки подлинности. Их причиной могу быть неправильные настройки веб-сервера, скриптов сайта и т. п.
Ошибка 400. Неверный запрос/Bad Request.
Говорит о том, что запрос не может быть понят сервером, так как составлен неправильно. Возможно указан неверный URL, или произошел технический сбой при передаче данных по одной из следующих причин:
- нестабильное соединение;
- блокирование передачи данных антивирусом или брандмауэром;
- попытка браузера загрузить слишком большой файл;
- поврежденные или устаревшие файлы cookie у пользователя.
Ошибка 401. Неавторизованный запрос/Unauthorized.
Этот код означает, что для доступа к ресурсу требуется аутентификация. Серверу необходимы логин и пароль, которые отсутствуют в запросе.
Ошибка 403. Доступ к ресурсу запрещен/Forbidden.
Сервер не может выполнить запрос из-за ограничений в доступе указанного ресурса. Проще говоря, администратором сервера или разработчиками были наложены ограничения. Причинами могут послужить попытка доступа к системным ресурсам веб-сервера, таким как файлы .htaccess или .htpasswd или с заблокированного IP-адреса.
Ошибка 404. Ресурс не найден/Not Found.
Является самым распространенным кодом ошибки. Серверу не удается найти файл или страницу. Причиной может быть:
- неправильный адрес страницы;
- перемещенная или удаленная страница, которая размещалась по-указанному адресу;
- технический сбой, из-за которого страница временно недоступна.
Код ошибки 404 используют также, чтобы скрыть истинную причину отказа от обработки запроса. Из соображений безопасности ошибка 403 может быть замаскирована под ошибку 404.
Ошибка 405. Недопустимый метод/Method Not Allowed.
Для каждого типа операций (загрузка, передача данных) HTTP-протокол предусматривает использование своего метода: GET, POST и другие. Данная ошибка означает, что метод, определенный в строке запроса (Request-Line), нельзя применить к текущему ресурсу. Отображается, например, при попытке обработки файлов с помощью метода POST вместо сервера Apache или некорректной настройке взаимодействия метода POST и модуля FastCGI.
Ошибка 406. Неприемлемый запрос/Not Acceptable.
Встречается крайне редко. При данной ошибке сервер выдает информацию в виде, который не может распознать браузер или поисковый робот из-за сжатия данных или неподдерживаемого формата.
Ошибка 407. Требуется идентификация прокси, файервола/Proxy Authentication Required.
Ошибка, аналогичная коду 401, только аутентификация необходима для прокси-сервера. Очень часто текст ответа содержит рекомендации по ее устранению.
Ошибка 408. Время запроса истекло/Request Timeout.
Расшифровывается, как “время ожидания сервером передачи от клиента истекло”. Возникает при передаче больших файлов, временного сбоя подключения к сети интернет или временной перегрузке сервера. Решить эту проблему можно обычной перезагрузкой страницы, а так же проверкой интернет-соединения и попыткой загрузить ресурс позже.
Ошибка 409. Конфликт/Conflict.
Означает, что произошел конфликт запроса и конфигураций сервера. Возможные причины:
- конфликт с прокси, через которые идет обращение к серверу;
- конфликт обращений между файлами на самом сервере;
- вирусное ПО на устройстве пользователя;
- сбой в работе браузера.
Ошибка 410. Ресурс недоступен/Gone.
Схожа с ошибкой 404: страница или документ, к которому обращается запрос, недоступен. Однако ошибка 410 выдается тогда затребованный ресурс был удален окончательно.
Ошибка 411. Необходимо указать длину/Length Required.
Возникает при передаче файлов определенными методами и выставленных ограничениях на передаваемый объем. В этих случаях сервер отказывается принимать запрос без заголовка Content-Length.
Ошибка 412. Сбой при обработке предварительного условия/Precondition Failed.
Ошибка значит, что был обнаружен сбой или ошибка при обработке предварительного условия при проверке одного или нескольких полей заголовка запроса. Чтобы исправить ошибку, обычно достаточно почистить cash и cookie-файлы.
Ошибка 413. Тело запроса превышает допустимый размер/Request Entity Too Large.
Происходит в случае, когда объем запроса больше, чем веб-сервер может обработать, например, при загрузке слишком большого файла. Для устранения рекомендуется:
- сжать изображение или видео перед загрузкой, чтоб уменьшить размер файла;
- не загружать несколько файлов одновременно;
- увеличить допустимый объем файлов, изменив настройки веб-сервера, которые отвечают за загрузку.
Ошибка 414. Недопустимая длина URI запроса/Request-URI Too Long.
Сервер отклоняет запрос из-за слишком длинного указанного URI. Ошибка может возникнуть при некорректно настроенном коде CMS: в административной панели сайта при каждом переходе со страницы на страницу к URL-адресу добавляются данные с параметрами, пока ссылка не превысит лимит. Так же частотность отображения ошибки 414 может свидетельствовать о попытках взлома.
Ошибка 415. Неподдерживаемый MIME тип/Unsupported Media Type.
Сервер отказывается обрабатывать запрос с указанным типом данных, потому что тело запроса имеет неподдерживаемый формат.
Ошибка 416. Диапазон не может быть обработан/Range Not Satisfiable.
Сервер не может обработать запрос, потому что значение поля Range в заголовке запроса указан диапазон за пределами ресурса.
Ошибка 417. Сбой при ожидании/Expectation Failed.
Сервер по каким-то причинам не может удовлетворить значению поля Expect заголовка запроса и отказывается обрабатывать запрос.
Ошибка 422. Необрабатываемый элемент/Unprocessable Entity.
Данная ошибка свидетельствует о том, что сервер не может произвести операцию над ресурсом, так как в одном или нескольких элементах запроса возможна логическая ошибка.
Ошибка 423. Заблокировано/Locked.
Сервер отказывается обработать запрос, так как один из требуемых ресурсов заблокирован от применения к нему указанного метода.
Ошибка 424. Неверная зависимость/Failed Dependency.
Сервер выдает данную ошибку в случае, когда реализация сервером текущего запроса зависит от другой операции, которая не может быть выполнена
Ошибка 426. Требуется обновление/Upgrade Required.
Сервер запросил обновить протокол соединения, но SSL не поддерживается клиентом.
Ошибка 429. Слишком много запросов/Too Many Requests.
Свидетельствует о большом количестве запросов за короткое время. Часто сопровождается рекомендациями о времени повторных запросов. Может указывать на попытку DDoS-атаки.
Ошибка 451. Недоступно по юридическим причинам/Unavailable For Legal Reasons.
Означает, что доступ к ресурсу был закрыт по юридическим причинам. Это может быть требование органов государственной власти или правообладателей при нарушении авторских прав.
Ошибка 499. Клиент закрыл соединение/Client Closed Request.
Является нестандартным кодом для случаев, когда клиент закрыл соединение, не дождавшись ответа на запрос.
Ошибки класса 5** (500-599).
Данные коды выделены под ошибки на стороне сервера. Они говорят о том, что запрос является корректным, и отвечает всем требованиям сервера, но на данный момент сервер не может его обработать. Обычно, вместе с кодом, отображается объяснение ошибки.
Ошибка 500. Внутренняя ошибка сервера/Internal Server Error.
Данная ошибка отображает любую внутреннюю ошибку сервера, которая не входит в диапазон класса. Сервер не может определить проблему или столкнулся с непредвиденным условием, которое не позволяет ему выполнить запрос.
Ошибка 501. Метод не поддерживается/Not Implemented.
В отличие от ошибки 405, когда используется неправильный метод запроса, данная ошибка свидетельствует, что сервер не распознает метод запроса и не способен его обработать.
Ошибка 502. Ошибка шлюза/Bad Gateway.
Ошибка указывает на недействительное ответное сообщение от вышестоящего сервера в случае, когда запрос проходит через прокси-сервер, и какой-то из серверов в цепочке не может обработать запрос. Это возможно по следующим причинам:
- неисправность сервера;
- отсутствие связи между участками запроса;
- блокирование запроса файерволом;
- неправильная настройка сервера;
- конфликт настроек между серверами.
Ошибка 503. Служба недоступна/Service Unavailable.
Сервер не может обрабатывать запросы из-за временной перегрузки или сервисного обслуживания:
- на сервер одновременно поступило большое количество запросов, и у него не хватает мощности их обработать;
- на сервере проводятся технические работы;
- ограничение на максимальное одновременное подключение пользователей, установленное на сервере превышено.
Также данная ошибка может свидетельствовать о DDoS-атаке или перегрузке сервера из-за недостаточных мощностей сервера.
Ошибка 504. Время прохождения через межсетевой шлюз истекло/Gateway Timeout.
Означает, что сервер, выступающей в качестве прокси-сервера, не дождался отклика от вышестоящего сервера, к которому он обратился для выполнения запроса. Причинами могут быть как слишком короткий таймаут в настройках, так и нестабильное интернет-соединение между серверами или перегрузка сервера запросами.
Ошибка 505. Версия НТТР не поддерживается/Version Not Supported.
Такой ответ можно получить, если сервер не поддерживает версию HTTP-протокола, переданную в заголовке запроса. Обычно ответ содержит объяснение причины.
Ошибка 507. Недостаточно места/Not Extended.
Сервер не может успешно обработать запрос из-за недостатка места на диске. Проблема может носить временный характер.
Ошибка 510. Отсутствуют расширения/Not Extended.
Сервер не может обработать запрос, так как запрашиваемое расширение отсутствует. Вместе с ошибкой можно получить информацию о доступных серверу расширениях.
Вот такой внушительный список получился. И это только стандартные ошибки! В данный список не включены ни экспериментальные, ни черновые. Как показывает практика, самыми распространенными являются ошибки 403, 404, 504, которые легко запомнить. В остальных случаях всегда можно обратиться к блогу LLHOST INC., который еженедельно пополняет вашу “копилку знаний”.
Но это не все преимущества! До 11 ноября 2022 года на все виртуальные и VPN сервера LLHOST INC. действует промокод #httpcodes. Это значит, что любой тарифный план виртуальных серверов (OVS) или VPN серверов (PVS) можно приобрести со скидкой -12% на 3 месяца при ежемесячном платежном цикле. И пусть ошибки вам встречаются как можно реже!
Может сейчас эта тема не особо вас волнует, однако протяжении существования вашего сайта вы будете сталкиваться с кодами ответов сервера или «списком кодов состояния HTTP», связанных с различными элементами функциональной составляющей вашего сайта. Довольно часто встречаются такие ошибки, как 404 и 301, но существует огромное множество других ошибок, с которыми вы, возможно, не знакомы. Прежде чем паниковать, лучше прочтите эту статью, призванную рассказать вам о значения кодов различных ошибок, которые могут встретиться на вашем пути.
Некоторые из них напрямую связаны с сервером или с клиентской стороной, а некоторые уже не актуальны, поэтому вы вряд ли их увидите в реальной жизни, но ради интереса и фоновых знаний я включил и их.
Ниже представлена удобная таблица, при помощи которой вы сможете быстро и просто перейти к интересующей вас ошибке, и узнать ее значение:
100 | 301 | 405 | 417 | 450 |
101 | 302 | 406 | 418 | 451 |
102 | 303 | 407 | 422 | 500 |
200 | 304 | 408 | 423 | 501 |
201 | 305 | 409 | 424 | 502 |
202 | 306 | 410 | 425 | 503 |
203 | 307 | 411 | 426 | 504 |
204 | 400 | 412 | 428 | 505 |
205 | 401 | 413 | 429 | 506 |
206 | 402 | 414 | 431 | 507 |
207 | 403 | 415 | 444 | 509 |
300 | 404 | 416 | 449 | 510 |
1xx Информационные коды
- 100 Continue Server Code
100 Continue означает «работу в штатном режиме». Он означает, что пользователем был сделан хороший запрос, и сервер принялся к обработке. Это временный код ответа, имеющий место лишь тогда, когда пользователь ожидает финального ответа от сервера, который происходит только после того, как будет отослан последний пакет данных.
Когда этот код может использоваться? Это внутренний код, и иногда он даже не генерируется, если пользователь уже получил какие-то данные от сервера. Это нечто вроде послания к серверу о том, что соединение было установлено успешно, и двери открыты. Высылай данные, но не забудь закрыть дверь, когда закончишь дела (имеется в виду код финального ответа).
Вернуться в начало
- 101 Switching Protocols
Это, наверное, один из самых простых серверных кодов, который означает, что пользователь сделал запрос на переключение типа протокола, используемого на веб-сервере, и сервер дал согласие на это.
Когда этот код может использоваться? При переключении на новую версию HTTP с протокола старого типа. Этот запрос выполняется только при наличии более подходящего протокола (иными словами, при наличии более свежей версии HTTP).
Вернуться в начало
- 102 Processing
Так как WebDAV-запрос (протокол передачи) может содержать не только один запрос, но также множество подзапросов, включая операции с файлами, он зачастую может затребовать более длительного времени для завершения запроса.
Когда этот код может использоваться? Этот код генерируется для того, чтобы оповестить пользователя и необходимости сбросить таймер и ожидать следующей команды в обычном режиме, так как процесс обработки запроса может занять длительное время.
Вернуться в начало
2xx Success
Сообщения данного класса информируют о случаях успешного принятия и обработки запроса клиента. В зависимости от статуса сервер может ещё передать заголовки и тело сообщения. Иначе говоря, данная классификация кодов обозначает, что действие, запрошенное клиентом, было успешно принято в обработку.
- 200 OK
Этот код, вероятно, является самым популярным, но при этом самым незаметным ввиду его характера. Он означает, что обмен между пользователем и сервером завершен, и все прошло так, как должно было.
- 201 Created
В результате успешного выполнения запроса был создан новый ресурс. Например, запрос пользователя привел к созданию нового ресурса вроде новой страницы. Сервер-источник должен создать ресурс перед тем, как отправлять код 201. Если ресурс не может быть создан в данный момент, то сервер вместо этого должен отобразить код 202 (accepted).
Вернуться в начало
- 202 Accepted
Запрос был принят на обработку, но она не завершена по каким-либо причинам. Запрос может и не быть выполнен до конца, в зависимости от того, был ли он отклонен в процессе обработки.
Когда этот код может использоваться? Когда сервер не может выполнить запрос в тот момент, в который он был сделан. Запрос изначально не рассчитан на обязательное исполнение, и клиенту не обязательно дожидаться окончательной передачи сообщения, так как может быть начат очень долгий процесс.
Вернуться в начало
- 203 Non-Authoritative Information
Сервер успешно обработал запрос, но передаваемая информация была взята не из первичного источника (резервной копии, другого сервера и т. д.) и поэтому может быть неактуальной. По сути, этот код очень похож на 200, но указывает на то, что информация была получена не из первоисточника.
Когда этот код может использоваться? Этот код может быть использован вместо 200, когда у отправителя есть причина полагать, что заголовки ответа от постороннего источника могут отличаться от того, что предоставил бы исходный сервер.
Вернуться в начало
- 204 No Content
Этот код представляет собой ответ, посланный сервером для того, чтобы сообщить, что запрос был получен и понят, но отсутствуют данные, которые можно было отправить пользователю. Это, главным образом, используется для того, чтобы разрешить запуск скриптов, не меняя при этом документ. Данный код не должен содержать тело сообщения, и включается в первую пустую строку кода сразу после заголовка.
Когда этот код может использоваться? Этот код, главным образом, используется для того, чтобы позволить осуществить ввод или какие-либо действия без необходимости обновлять документ (страницу).
Вернуться в начало
- 205 Reset Content
Сервер успешно обработал запрос, но при этом не возвращает какой-либо контент. В отличие от 204, этот ответ требует от запрашиваемого обновить документ.
Когда этот код может использоваться? Обычно он используется тогда, когда пользователь заполняет форму, а сервер посылает браузеры запрос на очистку формы. Он схож с кодом 204, но просит пользователя сбросить документ после завершения – например, очистить HTML-форму после подтверждения.
Вернуться в начало
- 206 Partial Reset
Сервер возвращает лишь часть контента, соответствующего заголовку, посланному клиентом. Обычно он используется расширенными инструментами кэширования, когда пользователь запрашивает лишь небольшую часть контента на странице, и сервер в своем ответе предоставляет данные лишь для этой области на странице.
Когда этот код может использоваться? Этот кода обычно используется вследствие запрос If-Range, который применяется в мощных валидаторах кэша. Запрос также должен включать заголовки области, которые используется в качестве параметров диапазона возвратной информации.
Вернуться в начало
- 207 Multi-Status
Сервер передаёт результаты выполнения сразу нескольких независимых операций, которые помещают в тело сообщения в виде XML-документа.
Вернуться в начало
3хх Перенаправление
Этот класс кодов состояния указывает на дальнейшие действия, которые должны быть предприняты агентом пользователя для того, чтобы завершить запрос. Действия могут производиться пользователей, либо могут включать в себя различные запросы к серверу.
- 300 Multiple Choices
В основном, этот код сообщает пользователю о том, что ресурс был перемещен, и сервер отвечает списком доступных альтернативных вариантов, среди которых пользователь может выбрать наиболее подходящий ему ресурс.
Когда этот код может использоваться? Обычно этот код можно увидеть, когда сервер считает, что предоставленный пользователем (другими словами, браузером пользователя) URL имеет недостаточно точный указатель, и предлагает дальнейший выбор. Обычно это происходит тогда, когда пользователь использует URL на директорию не самого последнего уровня, и сервер предлагает ему выбор имеющихся файлов или директорий последующего уровня.
Вернуться в начало
- 301 Moved Permanently
Это довольно распространенный пользовательский запрос. Он означает, что запросы для данного ресурса (а также все последующие запросы) должны быть перенаправлены на заданный URL.
Когда этот код может использоваться? Когда страница более не существует, либо ссылка, ведущая на сторонний источник, уже не работает. 301 редирект сообщает пользователю о том, что запрашиваемый ресурс был перемещен (обычно это реализуется при помощи файла .htaccess, доступного на серверах Apache).
Вернуться в начало
- 302 Found
Этот код сообщает пользователю, что расположение запрашиваемого ресурса временно изменено, и 302 код состояния должен содержать информацию о новом месторасположении, которое пользователь и должен запросить.
Когда этот код может использоваться? У этого кода есть несколько применений, многие из которых не являются тем, для чего код был изначально предназначен. Изначально он представлял собой основной способ создания временного перенаправления. Тем не менее, сегодня существуют и другие – этичные, и неэтичные – способы его применения.
Вернуться в начало
- 303 See Other
Этот код указывает пользователю на то, что запрашиваемый ресурс можно найти по URL, который отличается от указанного в запросе. Это не обязательно означает, что что-то было перемещено, это код лишь предоставляет адрес, по которому следует запрашивать подобный ответ.
Когда этот код может использоваться? Этот метод главным образом существует для того, чтобы позволить выводу данных POST-активированного скрипта перенаправить агента пользователя к выбранному ресурсу.
Вернуться в начало
- 304 Not Modified
Этот код означает, что пользователь запрашивает документ/ресурс только в том случае, если он подвергался изменениям с момента последнего обновления кэша данного документа.
Когда этот код может использоваться? Если в ответе от сервера сообщается о том, что параметры документа If-Modified-Since или If-Match не менялись с момента создания последнего кэша, то нет необходимости в повторной отправке ресурса.
Вернуться в начало
- 305 Use Proxy
Этот код сообщает пользователю, что доступ к запрашиваемому ресурсу возможен только посредством прокси, указанного в ответе.
Когда этот код может использоваться? Этот код часто отображается в связи с мерами безопасности, и предоставляет доступ к запрашиваемым URL-ресурсам.
Вернуться в начало
- 306 Switch Proxy
Этот код изначально означал «последующие запросы должны использовать указанный прокси», но в данный момент не используется и зарезервирован.
Вернуться в начало
- 307 Temporary Redirect
Этот код возвращается, если ресурс на данный момент временно доступен по другому URL, который также предоставляется в ответе. Этот код немного отличается от кода 302 – он представляет собой более определенную версию кода 302.
Когда этот код может использоваться? Он используется практически в тех же случаях, что и 302, но пользователь должен продолжить запросы по исходному URL при следующих запросах, либо до тех пор, пока не будет применен новых код ответа.
Вернуться в начало
4хх Ошибка клиента
Класс кодов 4xx предназначен для указания ошибок со стороны клиента, либо на то, что локации никогда (или уже) не существовало. Эти коды состояния применимы к любому методу запроса.
- 400 Bad Request
Запрос не может быть исполнен ввиду синтаксической ошибки.
Когда этот код может использоваться? Когда пользователь запрашивает информацию, но делает это, пренебрегая правилами протокола передачи гипертекста. Запрос не следует повторять без изменения синтаксиса.
Вернуться в начало
- 401 Unauthorized
Этот код связан с запросом к ресурсу, который требует авторизации. Ответ 401 указывает на то, что попытка авторизации была отклонена по тем данным, которые предоставил пользователь.
Когда этот код может использоваться? Когда пользователь совершает запрос к серверу, используя неправильные данные авторизации (имя пользователя и/или пароль).
Вернуться в начало
- 402 Payment Required
Зарезервирован на будущее. Тем не менее, исходное предназначение заключалось в том, что данный код мог использоваться в некоторой форме электронных денег для проведения трансакций, но этого не случилось, и коду не нашлось применения.
Когда этот код может использоваться? Старый сервис MobileMe от Apple выдавал ошибку 402, если аккаунт пользователя в MobileMe подозревался в злоупотреблении сервисом. Кроме того, Youtube использует это состояние, если конкретный IP-адрес уличен в совершении чрезмерного числа запросов, и тогда пользователю необходимо ввести CAPTHA.
Вернуться в начало
- 403 Forbidden
Пользователь пытается осуществить доступ к ресурсу, к которому у него нет доступа, и авторизация не изменит положения.
Когда этот код может использоваться? Когда сервер понял запрос, но он отказывается его выполнять из-за ограничений в доступе для клиента к указанному ресурсу. Обычно такое случается, когда ресурс не предназначен для публичного доступа.
Вернуться в начало
- 404 Not Found
Все знакомы с этим кодом, не так ли? Он означает, что запрошенный ресурс не может быть найден, но в будущем – когда он, возможно, там появится, – к нему можно будет осуществить доступ. Также здесь допустимы последующие запросы от клиента. Тем не менее, в большинстве таких случаев применяется код перенаправления из семейства 3хх, и пользователя перенаправляют на альтернативный ресурс или локацию.
Когда этот код может использоваться? Довольно часто, особенно если страницу переместили или удалили. Зачастую в подобных случаях сервер автоматически генерирует направляющую страницу с ошибкой 404.
Вернуться в начало
- 405 Method Not Allowed
Метод, при помощи которого совершается запрос к ресурсу, не доступен. Другими словами, ошибка возникает при попытке использовать GET на форме, которая требует ввод данных посредством POST, либо использовании метода PUT на ресурсе, который предназначен только для чтения.
Когда этот код может использоваться? Ошибки 405 встречаются в связи с конкретными объектами на веб-странице, для которых был совершен запрос. Например, когда строка запроса в скрипте отличается от пользовательского запроса, в котором подразумевается использование этого скрипта.
Вернуться в начало
- 406 Not Acceptable
Запрошенный ресурс способен генерировать только тот контент, который не применим к Accept-заголовкам в самом запросе. Браузер способен указывать серверу характеристики данных, которые данные будут принимать от сервера
Когда этот код может использоваться? Если форма файла запрошенного ресурса не совпадает с форматом, который пользователь способен распознать. Мы говорим сейчас о языке программирования, а не о французском!
Вернуться в начало
- 407 Proxy Authentication Required
Как и код состояния 401, код 407 означает, что клиент сначала должен авторизоваться через прокси. Чтобы сделать это и авторизоваться, прокси должен вернуть поле с заголовком proxy-authenticate, который отвечает требованиям, представленным сервером.
Когда этот код может использоваться? Когда сервер думает, что запрос данных от клиента корректным, но доступ к ресурсу возможен только посредством авторизации через прокси-сервер.
Вернуться в начало
- 408 Request Timeout
Время ожидания сервером передачи от клиента истекло.
Когда этот код может использоваться? Руководствуясь спецификацией W3 HTTP: «Клиент не сделал запрос в отведенный промежуток времени, который сервер был готов ждать. Клиент МОЖЕТ повторить запрос когда угодно».
Вернуться в начало
- 409 Conflict
Указывает на то, что запрос не может быть выполнен из-за конфликтного обращения к ресурсу.
Когда этот код может использоваться? Вы можете получить такой код при загрузке файла на веб-сервер, где уже имеется более свежая версия этого файла, что приводит к конфликту в системе контроля версий.
Вернуться в начало
- 410 Gone
Такой ответ сервер посылает, если ресурс раньше был по указанному URL, но был удалён и теперь недоступен. Пользователю не следует повторять идентичный запрос.
Когда этот код может использоваться? Если более невозможно осуществить доступ к ресурсу посредством данного запроса, и сервер не владеет информацией о возможном месте расположения ресурса. Если у сервера есть подозрение, что документ в ближайшее время может быть восстановлен, то лучше клиенту передать код 404.
Вернуться в начало
- 411 Length Required
Запрос не указывает длину контента, и это было затребовано в совершенном запросе.
Когда этот код может использоваться? Когда браузер не определяет длину запрашиваемого контента в заголовке запроса. Сервер не примет запрос без валидного поля заголовка content-length.
Вернуться в начало
- 412 Precondition Failed
Сервер не отвечает одному из предварительных условий, которые отправитель указал в запросе. Другими словами, один или более заголовок запроса был возвращен с атрибутом false.
Когда этот код может использоваться? Если заголовок запроса, который совершает валидный запрос к ресурсу, сообщает, что этот конкретный запрос не применим к этому конкретному ресурсу.
Вернуться в начало
- 413 Request Entity Too Large
Код 413 отображается в тех случаях, когда сервер отказывается обработать запрос по причине слишком большого размера тела запроса.
Когда этот код может использоваться? При использовании в форме метода POST с контентом, по размеру большим, нежели сервер способен обработать.
Вернуться в начало
- 414 Request-URL Too Long
Этот код отображается, когда сервер не может обработать запрос из-за слишком длинного указанного URL.
Когда этот код может использоваться? Когда POST-запрос конвертируется в GET-запрос. POST-запрос поддерживает отправку безграничного объема данных, связывая их с самим запросом. Тем не менее, если запрос должен быть конвертирован в GET-запрос, то запрос позволяет привязать данные формы к URL, что позволяет проводить информацию в больших размерах, чем это было доступно.
Вернуться в начало
- 415 Unsupported Media-Type
Ответ 415 отправляется для указания о том, что сервер заметил, что часть запроса была сделана в неподдерживаемом формате.
Когда этот код может использоваться? Когда в запросе не указываются какие-либо типы медиа, которые поддерживаются ресурсом или сервером. Например, пользователь запрашивает изображение с расширением файла, которое не поддерживается сервером. Сервер знает о том, что было запрошено, но не понимает формат, в котором был запрошен ресурс.
Вернуться в начало
- 416 Requested Range Not Satisfiable
Этот ответ приходит пользователю, когда тот запрашивает часть запрашиваемого ресурса, когда эта часть не может быть предоставлена.
Когда этот код может использоваться? Когда у сервера запрашивают XXX-YYY байтов какого-либо ресурса, но ресурс имеет меньший размер, чем указано в запросе.
Вернуться в начало
- 417 Expectation Failed
Этот ответ может быть получен, когда по каким-то причинам сервер не может удовлетворить значению поля Expect заголовка запроса.
Когда этот код может использоваться? Все вполне и так понятно. Когда один из заголовков запроса, заголовок «Expect», имеет запрос, на который сервер не может предоставить ответ.
Вернуться в начало
- 418 I’m a teapot
Этот код был создан в 1998 году как одна из традиционных первоапрельских шуток IETF, в RFC 2324, Hyper Text Coffee Pot Control Protocol, и вряд ли будет обрабатываться современными HTTP-серверами.
- 422 Unprocessable Entity
Запрос был принят и понят, но не может быть выполнен ввиду наличия семантических ошибок.
Когда этот код может использоваться? Когда сервер успешно принял запрос, может работать с указанным видом данных, в теле запроса XML-документ имеет верный синтаксис, но имеется какая-то логическая ошибка, из-за которой невозможно произвести операцию над ресурсом.
Вернуться в начало
- 423 Locked
Целевой ресурс из запроса заблокирован от применения к нему указанного метода. Чтобы ресурс стал доступным, необходимо снять блокировку или предоставить правильные данные авторизации.
Когда этот код может использоваться? Когда ресурс… закрыт. Обычно это случается из соображений безопасности.
Вернуться в начало
- 424 Failed Dependency
Указывает на то, что реализация текущего запроса может зависеть от успешности выполнения другой операции, и если она не будет успешно проведена, вся обработка запроса будет прервана.
Вернуться в начало
- 425 Unordered Collection
Этот код отображается, когда ресурс определен в черновиках «WebDAV Advanced Collections Protocol», но не присутствует в «Web Distributed Authoring and Versioning Ordered Collections Protocol».
Вернуться в начало
- 426 Upgrade Required
Этот код отображается, когда сервер указывает клиенту на необходимость обновить (переключиться на другой, более новый) протокол. Когда этот код может использоваться? Обычно когда браузер использует устаревшие протоколы.
Вернуться в начало
- 428 Precondition Required
Сервер-источник требует, чтобы в запросе были указаны предварительные условия. Этот код предназначен для того, чтобы избежать конфликта версий ресурса в тех случаях, когда клиент получает (GET) состояние ресурса, изменяет его, и отправляет (PUT) обратно на сервер, и в то же время какая-то третья сторона также изменяет положение ресурса прямо на севере, что приводит к конфликту.
Когда этот код может использоваться? Запрашивая указание условий, сервер как бы гарантирует клиентам то, что они используют корректные актуальные копии ресурс. Если же это не соответствует действительно, пользователь получит ошибку 428.
Вернуться в начало
- 429 Too Many Requests
Этот ответ посылается, если клиент попытался отправить слишком много запросов за короткое время.
Когда этот код может использоваться? Когда пользователь посылает слишком много запросов за короткий промежуток времени.
Вернуться в начало
- 431 Request Header Fields Too Large
Происходит, когда сервер не собирается обрабатывать запрос, так как какое-то из полей заголовка (или все поля заголовков) слишком большое.
Когда этот код может использоваться? В основном тогда, когда заголовок запроса от пользователя больше, чем сервер способен обработать. Запрос может быть повторен после того, как будет уменьшен размер полей заголовков в запросе.
Вернуться в начало
- 444 No Response
Использовался в лог-файлах Nginx для указания того, что сервер не вернул информацию пользователю и закрыл соединение.
Когда этот код может использоваться? Обычно использовался в качестве сдерживающего фактора против вредоносного ПО.
Вернуться в начало
- 449 Retry With (Microsoft)
Расширение Microsoft, которое указывает на то, что запрос должен быть повторен после применения подходящего действия.
Когда этот код может использоваться? Этот код зачастую генерируется, когда выставленные параметры запроса не соответствуют тем, что может принять сервер.
Вернуться в начало
- 450 Blocked by Windows Parental Controls (Microsoft)
Расширение Microsoft. Эта ошибка выдается, когда параметры Windows Parental Controls выставлены на блокировку доступ к определенным веб-страницам.
Когда этот код может использоваться? Когда родители (зная об этой функции) используют родительский контроль, и id-доступа запросил доступ к заблокированному ресурсу.
Вернуться в начало
- 451 Unavailable For Legal Reasons
Новый HTTP-код состояния для ресурсов, которые заблокированы из юридических соображений. Используется для указания на то, что доступ к запрашиваемому ресурсу был заблокирован из юридических соображений: например, цензурой, или правительством.
Вернуться в начало
5xx Ошибка сервера
Коды 5xx выделены под случаи неудачного выполнения операции по вине сервера.
Эти серверные ответы зачастую отображаются, когда пользователь делает запрос, который сервер не в состоянии обработать по той или иной причине. Сервер должен включать сообщение для браузера, которое должно быть показано пользователю – в нем сообщается, что сервер (и по каким причинам) не способен обработать запрос.
- 500 Internal Server Error
Данная ошибка говорит о любой внутренней ошибке сервера, которая не входит в рамки остальных ошибок класса.
Когда этот код может использоваться? Когда ресурс или ссылка создаются на сервере (вроде календаря в системе бронирования), которые технически не существуют в виде ссылки или доступного ресурса, но показывается пользователю в виде ссылки.
Вернуться в начало
- 501 Not Implemented
Сервер либо не понимает метод в запросе, либо не поддерживает возможностей, необходимых для обработки запроса
Когда этот код может использоваться? Вы можете столкнуться с этим, когда сервер не поддерживает нормальные протоколы запроса, вроде GET, OPTIONS, HEAD, POST и т.д.
Вернуться в начало
- 502 Bad Gateway
Ответ 502 отображается, когда сервер, выступая в роли шлюза или прокси-сервера, получил недействительное ответное сообщение от вышестоящего сервера.
Когда этот код может использоваться? Обычно, когда вышестоящий сервер и прокси-сервер/шлюз не согласовывают между собой протоколы, представленные в запросе, и в результате получается ошибка при обмене данных.
Вернуться в начало
- 503 Server Unavailable
Сервер временно не имеет возможности обрабатывать запросы по техническим причинам. В основном, это состоянии является временным.
Когда этот код может использоваться? Когда сайт пользуется чрезмерным спросом, и сервер не в состоянии обработать все запросы.
Вернуться в начало
- 504 Gateway Timeout
Сервер в роли шлюза или прокси-сервера не дождался ответа от вышестоящего сервера для завершения текущего запроса.
Когда этот код может использоваться? Когда для передачи данных используется прокси-сервер/шлюз, и два сервера ждут ответов.
Вернуться в начало
- 505 HTTP Version Not Supported
Сервер не поддерживает указанную в запросе версию протокола HTTP.
Когда этот код может использоваться? В случаях, описанных выше! Когда HTTP-протокол более старый, нежели требуется серверу, и следовательно не поддерживается.
Вернуться в начало
- 506 Variant Also Negotiates
Такой ответ посылается, когда в результате ошибочной конфигурации выбранный вариант указывает сам на себя, из-за чего процесс связывания прерывается.
Когда этот код может использоваться? Когда сервер настроен некорректно, и не способен обработать запрос.
Вернуться в начало
- 507 Insufficient Storage
Когда сервер не способен разместить данные, так как не хватает места для выполнения текущего запроса.
Когда этот код может использоваться? Когда сервер уже полностью загружен, и пользователь совершает запрос на ресурс, который сервер уже имеет в запасе. Проблема заключается в том, что на сервере нет места для того, чтобы поместить данные, которые посылаются в запросе, чтобы затем выслать запрашиваемый ресурс.
Вернуться в начало
- 509 Bandwidth Limit Exceeded
Этот код ответа используется при превышении веб-площадкой отведённого ей ограничения на потребление трафика.
Когда этот код может использоваться? Когда на сервере Apache выполняется корректное расширение, и в ISP установлен уровень пропускного канала, который скоро может быть превышен. Существует несколько опций предела.
Вернуться в начало
- 510 Not Extended
Когда на сервере отсутствует расширение, которое желает использовать клиент. Когда этот код может использоваться? Когда сервер требует больше информации в совершаемом запросе.
Вернуться в начало
- 511 Network Authentication Required
Данный код состояния отображается в случае, если клиент должен сначала авторизоваться в сети, например, ввести пароль для платной точки доступа к Интернету.
Когда этот код может использоваться? Когда пользователь предварительно должен дать свое согласие на условия использования, перед тем, как он получит доступ к интернету (например, к Wi-fi точке доступа).
Итак, надеюсь, что данный список хоть как-то окажется вам полезным. Если я упустил что-то из виду, пожалуйста, допишите информацию в комментариях, и я обязательно включу ее в статью. Пожалуйста, не забудьте поделиться этой статье с друзьями, чтобы они также были в курсе.
Вернуться в начало