Полное руководство и список кодов состояния HTTP
Опубликовано: 2020-02-24Коды состояния HTTP похожи на короткие заметки с сервера, которые прикрепляются к веб-странице. На самом деле они не являются частью контента сайта. Вместо этого это сообщения от сервера, сообщающие вам, как все прошло, когда он получил запрос на просмотр определенной страницы.
Такие сообщения возвращаются каждый раз, когда ваш браузер взаимодействует с сервером, даже если вы их не видите. Если вы владелец или разработчик веб-сайта, понимание кодов состояния HT TP имеет решающее значение. Когда они появляются, коды состояния HTTP являются бесценным инструментом для диагностики и исправления ошибок конфигурации веб-сайта.
В этой статье представлены несколько кодов состояния и ошибок сервера, а также объясняется, что они говорят о том, что происходит на сервере за кулисами.
Давайте погрузимся!
Предпочитаете смотреть видео версию?
Что такое коды состояния HTTP?
Каждый раз, когда вы нажимаете на ссылку или вводите URL-адрес и нажимаете Enter , ваш браузер отправляет запрос на веб-сервер для сайта, к которому вы пытаетесь получить доступ. Сервер получает и обрабатывает запрос, а затем отправляет обратно соответствующие ресурсы вместе с заголовком HTTP.
Коды состояния HTTP доставляются в ваш браузер в заголовке HTTP. Хотя коды состояния возвращаются каждый раз, когда ваш браузер запрашивает веб-страницу или ресурс, в большинстве случаев вы их не видите.
Обычно только когда что-то идет не так, вы можете увидеть его в своем браузере. Это способ сервера сказать: «Что-то не так. Вот код, который объясняет, что пошло не так».

Если вы хотите увидеть коды состояния, которые ваш браузер обычно не показывает, существует множество различных инструментов, упрощающих эту задачу. Расширения браузера доступны для удобных для разработчиков платформ, таких как Chrome и Firefox, и существует множество веб-инструментов для извлечения заголовков, таких как Web Sniffer.
Чтобы просмотреть коды состояния HTTP с помощью одного из этих инструментов, найдите строку в верхней части отчета с надписью «Статус: HTTP/1.1». За этим последует код состояния, возвращенный сервером.
Понимание классов кода состояния HTTP
Коды состояния HTTP делятся на 5 «классов». Это группы ответов, имеющих сходное или родственное значение. Знание того, что они собой представляют, может помочь вам быстро определить общее содержание кода состояния, прежде чем вы начнете искать его конкретное значение.
Пять классов включают в себя:
- 100s: Информационные коды, указывающие на то, что запрос, инициированный браузером, продолжается.
- 200 с: Коды успеха возвращаются, когда запрос браузера получен, понят и обработан сервером.
- 300s: Коды перенаправления возвращаются, когда запрошенный ресурс был заменен новым.
- 400s: коды ошибок клиента, указывающие на проблему с запросом.
- 500s: коды ошибок сервера, указывающие на то, что запрос был принят, но ошибка на сервере помешала выполнению запроса.
В каждом из этих классов существует множество серверных кодов, которые могут быть возвращены сервером. Каждый отдельный код имеет особое и уникальное значение, которое мы рассмотрим в более подробном списке ниже.
Почему коды состояния HTTP и ошибки имеют значение для поисковой оптимизации (SEO)
Боты поисковых систем видят коды состояния HTTP во время сканирования вашего сайта. В некоторых случаях эти сообщения могут повлиять на то, индексируются ли ваши страницы и каким образом, а также на то, как поисковые системы воспринимают состояние вашего сайта.
Вообще говоря, 100- и 200-уровневые коды состояния HTTP не окажут большого влияния на вашу поисковую оптимизацию. Они сигнализируют о том, что на вашем сайте все работает как надо, и позволяют роботам поисковых систем продолжать свой путь. Тем не менее, они также не собираются повышать ваш рейтинг.
По большей части для SEO важны коды более высокого уровня. Ответы уровня 400 и 500 могут помешать ботам сканировать и индексировать ваши страницы. Слишком большое количество таких ошибок также может указывать на низкое качество вашего сайта и, возможно, на снижение вашего рейтинга.
300-уровневые коды имеют немного более сложные отношения с SEO. Главное, что вам нужно знать, чтобы понять их влияние, — это разницу между постоянными и временными переадресациями, которые мы рассмотрим более подробно в соответствующем разделе ниже.
В двух словах, однако, постоянные редиректы делят ссылочный капитал с обратными ссылками, а временные — нет. Другими словами, когда вы используете временную переадресацию для перемещенных страниц, вы теряете SEO-преимущество всего того, что вы сделали.
Проверка кодов состояния HTTP в Google Search Console
Один из способов отслеживать, как Google воспринимает коды состояния HTTP на вашем сайте, — использовать Google Search Console. Коды состояния уровня 300, 400 и 500 можно просмотреть в отчете о покрытии :

В этой области панели управления отображаются четыре типа контента на вашем сайте:
- Страницы, которые возвращают ошибки.
- Действительные страницы с предупреждениями.
- Ресурсы, которые являются действительными.
- Контент исключен из индекса.
Вы можете найти страницы с кодами состояния HTTP уровня 300, 400 и 500 в разделах « Исключено », « Ошибка » или « Действительно с предупреждениями », в зависимости от типа кода. Например, переадресация 301 может быть указана в разделе «Исключено как страница с переадресацией »:

Коды состояния уровня 400 и 500, скорее всего, появятся в разделе Error .
Другой способ просмотреть коды состояния HTTP — использовать инструмент проверки URL . Если Google не может проиндексировать определенную страницу из-за ошибки, вы увидите это здесь:

Чтобы получить дополнительные советы по использованию Google Search Console, ознакомьтесь с нашим подробным руководством по платформе.
Полное руководство и список кодов состояния HTTP
Хотя существует более 40 различных кодов состояния сервера, вы, скорее всего, будете сталкиваться с менее чем дюжиной на регулярной основе. Ниже мы рассмотрели наиболее распространенные, а также несколько малоизвестных кодов, с которыми вы все еще можете столкнуться.
Озадачен кодом состояния HTTP? Наши эксперты по WordPress всегда рядом. Попробуйте Кинста бесплатно.
100 кодов состояния
100-уровневый код состояния говорит вам, что запрос, который вы сделали на сервер, по какой-то причине все еще выполняется. Это не обязательно проблема, это просто дополнительная информация, чтобы вы знали, что происходит.
- 100: «Продолжить». Это означает, что рассматриваемый сервер получил заголовки запроса вашего браузера и теперь также готов к отправке тела запроса. Это делает процесс запроса более эффективным, поскольку не позволяет браузеру отправить основной запрос, даже если заголовки были отклонены.
- 101: «Переключение протоколов». Ваш браузер попросил сервер изменить протоколы, и сервер подчинился.
- 103: «Ранние намеки». Это возвращает некоторые заголовки ответа до того, как остальная часть ответа сервера будет готова.
200 кодов состояния
Это лучший тип кода состояния HTTP для получения. Ответ уровня 200 означает, что все работает именно так, как должно.
- 200: «Все в порядке». Это код, который доставляется, когда веб-страница или ресурс ведут себя именно так, как ожидается.
- 201: «Создано». Сервер выполнил запрос браузера и в результате создал новый ресурс.
- 202: «Принято». Сервер принял запрос вашего браузера, но все еще обрабатывает его. В конечном итоге запрос может привести или не привести к завершенному ответу.
- 203: «Неавторитетная информация». Этот код состояния может появиться, когда используется прокси. Это означает, что прокси-сервер получил код состояния 200 «Все в порядке» от исходного сервера, но изменил ответ, прежде чем передать его вашему браузеру.
- 204: «Нет контента». Этот код означает, что сервер успешно обработал запрос, но не собирается возвращать какой-либо контент.
- 205: «Сбросить содержимое». Как и код 204, это означает, что сервер обработал запрос, но не собирается возвращать какой-либо контент. Однако для этого также требуется, чтобы ваш браузер сбросил представление документа.
- 206: «Частичное содержание». Вы можете увидеть этот код состояния, если ваш HTTP-клиент (также известный как ваш браузер) использует «заголовки диапазона». Это позволяет вашему браузеру возобновить приостановленные загрузки, а также разделить загрузку на несколько потоков. Код 206 отправляется, когда заголовок диапазона заставляет сервер отправлять только часть запрошенного ресурса.
300 кодов состояния
Перенаправление — это процесс, используемый для сообщения о том, что ресурс был перемещен в новое место. Существует несколько кодов состояния HTTP, которые сопровождают перенаправления, чтобы предоставить посетителям информацию о том, где найти контент, который они ищут.
- 300: «Множественный выбор». Иногда может быть несколько возможных ресурсов, которыми сервер может ответить, чтобы выполнить запрос вашего браузера. Код состояния 300 означает, что теперь ваш браузер должен выбирать между ними. Это может произойти, если доступно несколько расширений типов файлов или если на сервере выполняется устранение неоднозначности смысла слов.
- 301: «Запрошенный ресурс был перемещен навсегда». Этот код доставляется, когда веб-страница или ресурс были навсегда заменены другим ресурсом. Он используется для постоянного перенаправления URL.
- 302: «Запрошенный ресурс был перемещен, но найден». Этот код используется для указания того, что запрошенный ресурс был найден, но не в том месте, где он ожидался. Используется для временного перенаправления URL.
- 303: «См. Другое». Чтобы понять код состояния 303, необходимо знать разницу между четырьмя основными методами HTTP-запроса. По сути, код 303 сообщает вашему браузеру, что он нашел ресурс, запрошенный вашим браузером через POST, PUT или DELETE. Однако, чтобы получить его с помощью GET, вам нужно сделать соответствующий запрос к URL-адресу, отличному от того, который вы использовали ранее.
- 304: «Запрошенный ресурс не был изменен с момента последнего обращения к нему». Этот код сообщает браузеру, что ресурсы, хранящиеся в кеше браузера, не изменились. Он используется для ускорения доставки веб-страниц за счет повторного использования ранее загруженных ресурсов.
- 307: «Временное перенаправление». Этот код состояния заменил 302 «Найдено» в качестве подходящего действия, когда ресурс был временно перемещен на другой URL-адрес. В отличие от кода состояния 302, он не позволяет изменить метод HTTP.
- 308: «Постоянная переадресация». Код состояния 308 является преемником кода 301 «Перемещено навсегда». Он не позволяет изменять метод HTTP и указывает, что запрошенный ресурс теперь постоянно находится по новому URL-адресу.
400 кодов состояния
На уровне 400 коды состояния HTTP начинают становиться проблематичными. Это коды ошибок, указывающие на ошибку вашего браузера и/или запроса.

- 400: «Неверный запрос». Сервер не может вернуть ответ из-за ошибки на стороне клиента. См. наше руководство по устранению этой ошибки.
- 401: «Неавторизованный» или «Требуется авторизация». Это возвращается сервером, когда у целевого ресурса отсутствуют действительные учетные данные для аутентификации. Вы можете увидеть это, если вы настроили базовую HTTP-аутентификацию с помощью htpasswd.

- 402: «Требуется оплата». Изначально этот код был создан для использования в системе цифровой наличности. Однако этот план так и не был реализован. Вместо этого он используется различными платформами, чтобы указать, что запрос не может быть выполнен, обычно из-за отсутствия необходимых средств. Общие случаи включают в себя:
- Вы достигли дневного лимита запросов к Google Developers API.
- Вы не оплатили комиссию Shopify, и ваш магазин временно деактивирован.
- Ваш платеж через Stripe не прошел, или Stripe пытается предотвратить мошеннический платеж.
- 403: «Доступ к этому ресурсу запрещен». Этот код возвращается, когда пользователь пытается получить доступ к чему-то, на просмотр чего у него нет разрешения. Например, попытка получить доступ к защищенному паролем содержимому без входа в систему может привести к ошибке 403.
- 404: «Запрошенный ресурс не найден». Это самое распространенное сообщение об ошибке из всех. Этот код означает, что запрошенный ресурс не существует, и сервер не знает, существовал ли он вообще.
- 405: «Метод не разрешен». Это генерируется, когда хост-сервер (исходный сервер) поддерживает полученный метод, а целевой ресурс — нет.
- 406: «Неприемлемый ответ». Запрошенный ресурс способен генерировать только тот контент, который неприемлем в соответствии с заголовками accept, отправленными в запросе.
- 407: «Требуется аутентификация прокси». Прокси-сервер используется и требует, чтобы ваш браузер аутентифицировал себя, прежде чем продолжить.
- 408: «У сервера истекло время ожидания оставшейся части запроса от браузера». Этот код генерируется, когда время ожидания сервера истекает при ожидании полного запроса от браузера. Другими словами, сервер не получил полный запрос, отправленный браузером. Одной из возможных причин может быть сетевая перегрузка, приводящая к потере пакетов данных между браузером и сервером.
- 409: «Конфликт». Код состояния 409 означает, что сервер не смог обработать запрос вашего браузера из-за конфликта с соответствующим ресурсом. Иногда это происходит из-за нескольких одновременных правок.
- 410: «Запрашиваемый ресурс пропал и не вернется». Это похоже на код 404 «Не найдено», за исключением того, что 410 указывает на ожидаемое и постоянное состояние.
- 411: «Требуется длина». Это означает, что запрошенный ресурс требует, чтобы клиент указал определенную длину, а он этого не сделал.
- 412: «Предварительное условие не выполнено». Ваш браузер включил определенные условия в заголовки своих запросов, и сервер не соответствовал этим спецификациям.
- 413: «Слишком большая полезная нагрузка» или «Слишком большой объект запроса». Ваш запрос больше, чем сервер хочет или может обработать.
- 414: «URI слишком длинный». Обычно это результат запроса GET, который был закодирован как строка запроса, слишком большая для обработки сервером.
- 415: «Неподдерживаемый тип носителя». Запрос включает тип мультимедиа, который не поддерживается сервером или ресурсом.
- 416: «Диапазон неудовлетворителен». Ваш запрос относился к части ресурса, которую сервер не может вернуть.
- 417: «Ожидание не оправдалось». Сервер не может выполнить требования, указанные в поле ожидаемого заголовка запроса.
- 418: «Я чайник». Этот код возвращают чайники, которые получают запросы на приготовление кофе. Это также первоапрельская шутка 1998 года.

- 422: «Необрабатываемый объект». Запрос клиента содержит семантические ошибки, и сервер не может его обработать.
- 425: «Слишком рано». Этот код отправляется, когда сервер не желает обрабатывать запрос, поскольку он может быть воспроизведен повторно.
- 426: «Требуется обновление». Из-за содержимого поля заголовка обновления запроса клиент должен переключиться на другой протокол.
- 428: «Требуется предварительное условие». Сервер требует, чтобы условия были указаны перед обработкой запроса.
- 429: «Слишком много запросов». Это генерируется сервером, когда пользователь отправил слишком много запросов за заданный промежуток времени (ограничение скорости). Иногда это может происходить из-за того, что боты или скрипты пытаются получить доступ к вашему сайту. В этом случае вы можете попробовать изменить URL-адрес входа в WordPress. Вы также можете ознакомиться с нашим руководством по исправлению ошибки 429 «Слишком много запросов».

- 431: «Поля заголовка запроса слишком велики». Сервер не может обработать запрос, так как поля заголовка слишком велики. Это может указывать на проблему с одним полем заголовка или со всеми вместе.
- 451: «Недоступно по юридическим причинам». Оператору сервера поступило требование запретить доступ к запрошенному вами ресурсу (или набору ресурсов, включая запрошенный вами). Забавный факт: этот код является отсылкой к роману Рэя Брэдбери « 451 градус по Фаренгейту » .
- 499: «Клиент закрыл запрос». Это возвращается NGINX, когда клиент закрывает запрос, в то время как Nginx все еще обрабатывает его.
Озадачен кодом состояния HTTP? Наши эксперты по WordPress всегда рядом. Попробуйте Кинста бесплатно.
500 кодов состояния
Коды состояния уровня 500 также считаются ошибками. Однако они означают, что проблема на стороне сервера. Это может затруднить их решение.
- 500: «На сервере произошла ошибка, и запрос не может быть выполнен». Это общий код, который просто означает «внутренняя ошибка сервера». Что-то пошло не так на сервере и запрошенный ресурс не был доставлен. Этот код обычно генерируется сторонними плагинами, неисправным PHP или даже разрывом соединения с базой данных. Ознакомьтесь с нашими руководствами о том, как исправить ошибку при установлении соединения с базой данных, а также о других способах устранения внутренней ошибки сервера 500.

- 501: «Не реализовано». Эта ошибка указывает на то, что сервер не поддерживает функции, необходимые для выполнения запроса. Это почти всегда проблема на самом веб-сервере и обычно должна решаться хостом. Ознакомьтесь с нашими рекомендациями по устранению не реализованной ошибки 501.
- 502: «Плохой шлюз». Этот код ошибки обычно означает, что один сервер получил неверный ответ от другого, например, при использовании прокси-сервера. В других случаях запрос или запрос занимают слишком много времени, поэтому он отменяется или уничтожается сервером, а соединение с базой данных разрывается. Для получения более подробной информации см. наш подробный учебник о том, как исправить ошибку 502 Bad Gateway.
- 503: «Сервер сейчас недоступен для обработки этого запроса». Запрос не может быть выполнен в данный момент времени. Этот код может быть возвращен перегруженным сервером, который не может обрабатывать дополнительные запросы. У нас есть полное руководство о том, как исправить ошибку 503 Service Unreachable.
- 504: «Сервер, выступающий в роли шлюза, истек по тайм-ауту в ожидании ответа другого сервера». Этот код возвращается, когда два сервера участвуют в обработке запроса, и время ожидания первого сервера истекло, ожидая ответа второго сервера. Вы можете узнать больше о том, как исправить ошибку 504, в нашем специальном руководстве.
- 505: «Версия HTTP не поддерживается». Сервер не поддерживает версию HTTP, которую клиент использовал для выполнения запроса.
- 508 : « Достигнут лимит ресурсов»: достигнуты ограничения на ресурсы, установленные вашим веб-хостом. Ознакомьтесь с нашим руководством о том, как устранить ошибку «508 Resource Limit Is Reached».
- 511: «Требуется сетевая аутентификация». Этот код состояния отправляется, когда сеть, которую вы пытаетесь использовать, требует некоторой формы аутентификации перед отправкой вашего запроса на сервер. Например, вам может потребоваться принять Условия использования общедоступной точки доступа Wi-Fi.
- 521: «Веб-сервер не работает». Ошибка 521 — это сообщение об ошибке, характерное для Cloudflare. Это означает, что ваш веб-браузер смог успешно подключиться к Cloudflare, но Cloudflare не смог подключиться к исходному веб-серверу.
- 525 : «Сбой рукопожатия SSL». Ошибка 525 означает, что рукопожатие SSL между доменом, использующим Cloudflare, и исходным веб-сервером не удалось. Если у вас возникли проблемы, есть пять способов, которыми вы можете легко исправить ошибку 525.
Где узнать больше о кодах состояния HTTP
В дополнение к кодам состояния HTTP, которые мы рассмотрели в этом списке, есть еще несколько неясных, о которых вы, возможно, захотите узнать. Есть несколько ресурсов, с которыми вы можете ознакомиться, чтобы узнать об этих более редких кодах, в том числе:
- Полный список кодов состояния HTTP из Википедии.
- Определения кодов состояния от Инженерной группы Интернета (IETF).
- RFC 7231.
Знание этих кодов состояния может помочь вам решить некоторые уникальные проблемы при обслуживании вашего собственного веб-сайта или даже при столкновении с ними на других сайтах.
Резюме
Хотя на первый взгляд они могут показаться запутанными или пугающими, коды состояния HTTP на самом деле очень информативны. Изучив некоторые из распространенных, вы сможете быстрее устранять проблемы на своем сайте.
В этом посте мы определили более 40 кодов состояния HTTP, с которыми вы можете столкнуться. От более мягких кодов уровня 100 и 200 до более сложных ошибок уровня 400 и 500, понимание этих сообщений имеет решающее значение для поддержания вашего веб-сайта и обеспечения его доступности для пользователей.