yandex

Коды ошибок HTTP: что нужно знать о серверных и клиентских ошибках

Зафиксируйте стоимость
на 3 года
Зафиксировать
Avatar icon

Александра Гонтарева

Редактор блога

Статья

Время чтения

13 минут

Когда пользователи заходят на сайт и видят ошибку 404, они могут решить, что ресурс неисправен и не может помочь в решении их задачи. В этот момент доверие к нему снижается, а его потенциальная аудитория сокращается. Поэтому администратору важно отслеживать состояние веб-ресурса, чтобы быстро восстановить его работу. 

О том, как при мониторинге сайта с целью поддержании стабильности его работы помогает протокол HTTP, что означают коды его ошибок и как их исправить, поговорим в этой статье. 

HTTP-сообщения и их структура

HTTP (HyperText Transfer Protocol) — это протокол передачи данных прикладного уровня, который нужен для взаимодействия пользователей и веб-ресурсов. Дословно HTTP расшифровывается как «протокол передачи гипертекста». То есть по нему передаются гипертекстовые документы, состоящие из файлов с разметкой и ссылками на другие страницы. Все эти документы написаны на языке гипертекстовой разметки HTML.

Стандартно в соединении по HTTP участвуют два устройства — клиент и сервер. Однако на практике в нем также принимают участие и устройства-посредники: интернет-шлюзы и прокси-серверы.

Примерно так устройства взаимодействуют по HTTP-протоколу
Примерно так устройства взаимодействуют по HTTP-протоколу

В работе HTTP использует специальные HTTP-сообщения, которые делятся на две группы.

  • Запросы (HTTP Requests). Их отправляет ПО — например, браузер — пользователя, интерпретируя его действия и сообщая серверу о необходимости предоставить данные. Чтобы сервер смог выполнить эту задачу, HTTP-запрос выполняется специальными методами GET, HEAD, POST, DELETE и другими. 

  • Ответы (HTTP Responses). Реакция сервера на запросы клиента.

Само HTTP-сообщение включает в себя три составляющих:

  • Стартовая строка (start line) содержит сведения о версии HTML.

  • Заголовок (HTTP Header) — часть, которая  либо конкретизирует запрос, либо описывает содержимое тела сообщения.

  • Тело сообщения (опционально) — фрагмент, в котором могут содержаться связанные с запросом данные или передаваемый в ответе HTML-документ.

Коды HTML принято делить на информационные, коды успешных запросов и коды перенаправления. Также различают коды клиентских и серверных ошибок.

Информационные коды

Коды этой группы начинаются с «1». Они носят исключительно информационный характер и не влияют на обработку запроса. 

Примеры информационных кодов
Примеры информационных кодов

Коды успешных запросов

Если HTTP-запрос прошел успешно, его код будет начинаться с цифры 2.

Примеры кодов для обозначения успешного завершения процессов
Примеры кодов для обозначения успешного завершения процессов

Коды перенаправления

Начинающиеся на 3 коды HTTP нужны, чтобы оповещать пользователей о потребности перехода на другой ресурс для выполнения запроса. Адрес этого ресурса записывается в заголовке Location.

Примеры кодов об ошибках
Примеры кодов об ошибках

Коды клиентских ошибок

Коды HTTP, которые сообщают об ошибке на стороне клиента, начинаются на цифру 4. При этом если HTTP-запрос не использует метод HEAD, сервер отправляет пользователю пояснение в гипертекстовом формате. 

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

400 — Bad Request

Эту ошибку можно наблюдать, если клиент направил серверу сообщение с синтаксической ошибкой, а сервер не смог его обработать. 

Типичные причины возникновения ошибки 400 такие:

  • Попытка загрузить на сервер слишком крупный файл.

  • Искаженные cookie-файлы. При посещении сайта пользователем сервер сравнивает его cookie со своими данными. Поэтому использование битых cookie сервер воспринимает как попытку нарушить свою безопасность.

  • Определение заголовков запроса как некорректных.

  • Ошибки в URL — адресе ресурса в интернете.

Чтобы устранить ошибку 404, посетитель сайта может предпринять следующие шаги:

  • Убедиться, что адрес ресурса набран правильно. 

  • Очистить файлы cookie в настройках браузера. 

  • Сжать большие файлы. 

  • Проверить компьютер на вирусы.

  • Очистить устройство от временных файлов.

  • Загрузить свежие обновления ОС.

Также стоит учесть, что иногда ошибка 400 может возникать из-за проблем на сервере. 

К таковым относятся:

  • неверная установка требований к HTTP-заголовкам;

  • некорректная работа плагинов CMS, влияющая на изменения в базе данных;

  • ошибки в программном коде сайта.

401 — Unauthorized

Код 401 возникает, если пользователь вводит неверный логин и пароль или в том случае, когда их нет в базе данных системы. 

Еще одна причина ошибки 401 — срабатывание защиты сайта от ботов. Это актуально в том случае, если у ресурса нет специального сообщения для этой защиты.

Чтобы устранить эту ошибку, пользователю нужно проверить правильность введенных логина и пароля. Если пара логин-пароль сохранена в менеджере паролей, нужно заглянуть туда и проверить ее. Если же после их проверки ошибка 401 сохраняется, следует обратиться к администратору ресурса.

403 — Forbidden

Эта ошибка появляется, если доступ к странице запрещен для посетителя. 

Почему может появиться код 403:

  • Запрет доступа администраторами сервера. Он может быть установлен по IP-адресу, формату файлов, статусу посетителя и так далее.

  • Некорректное расположение файлов на сайте.

  • Ошибки файлов index и .htaccess (на хостинге Linux). Например, index может быть размещен не в корневой папке или иметь другое название.

  • Хостинг не поддерживает технологии, которые использует владелец сервера.

  • Сайт заблокирован провайдером.

Если посетитель сайта столкнулся с ошибкой 403, прежде всего ему нужно открыть страницу, где появился этот код, с разных устройств. Если на другом устройстве ошибка не появится, скорее всего, проблема в девайс.

Также клиент в этой ситуации может принять следующие меры:

  • подождать 15–30 секунд и обновить страницу;

  • посмотреть на URL и убедиться, что он введен верно;

  • если ни один из этих шагов не помог — связаться с администратором ресурса.

Администратор сайта может предпринять следующие меры:

  • Посмотреть настройки доступа к странице с ошибкой и установить настройки так, чтобы на страницу смогли зайти те, кто получает код 403.

  • Открыть корневую папку сайта, поместить туда файл главной страницы и дать ему имя index.

  • Спросить у провайдера, не приостановлено ли обслуживание сайта. Если да, то узнать причины и выяснить, что нужно сделать для возобновления обслуживания.

  • Проверить размещение файлов на сайте. Поставить их на нужные места, если нарушены правила их расположения.

404 — Not Found

404 — самая известная ошибка HTTP. Она сообщает о том, что запрашиваемой страницы нет на сервере. 

Что приводит к коду 404:

  • Ошибки пользователя при вводе URL страницы. Например, он мог опечататься, неправильно выбрать раскладку или регистр.

  • Владелец сайта удалил страницу или переместил ее на другой URL. При этом пользователю известен только старый адрес. Также старую ссылку может выдать поисковик, который не успел обновить выдачу.

  • Неправильное структурирование сайта. Ссылки на сайте ведут в несуществующие директории. При этом действующие ссылки на странице не прописаны.

  • Различные сбои в работе сервера.

У ошибки 404 масса вариантов дизайнерского оформления
У ошибки 404 масса вариантов дизайнерского оформления

Что может предпринять пользователь, чтобы избавиться от ошибки 404:

  • Убедиться, что URL введен правильно. Если обнаружится опечатка, нужно будет ввести правильный адрес и перейти по нему.

  • Проверить, действительно ли существует эта страница. Для этого можно зайти на карту сайта или поискать ее через другой поисковик.

  • Рассказать администратору о возникшей проблеме.

Администратору же нужно проверить ресурс на битые ссылки с помощью специальных сервисов и следовать их указаниям. Например, это могут быть Яндекс.Вебмастер, Screaming Frog или Dead Link Checker

408 — Request Timeout

Этот код сервер присылает, когда заканчивается время ответа на запрос. Чаще всего ошибка происходит, если соединение с интернетом нестабильно.

Что нужно сделать пользователю:

  1. Попробовать открыть другие сайты с того устройства, с которого открыли ресурс с ошибкой 408. Если это получилось, проблема, скорее всего, в сайте, где появилась ошибка.

  2. Обновить страницу спустя некоторое время.

  3. Проверить настройки прокси и другие параметры сетевого подключения. Поставить там стандартные настройки сети.

  4. Сообщить администратору сайта, если ничего не помогло.

А администратор сайта для устранения ошибки 408 может сперва соединение сервера с интернетом. А затем сократить время ожидания и обработки запроса: например, изменить параметр Timeout в Apache или сократить SQL-запросы.

429 — Too Many Requests

Сервер выдает код 429, если пользователь отправляет слишком много запросов за единицу времени. Ответ сервера при этом содержит пояснение, а также может включать заголовок Retry-After — в нем указывается время, которое необходимо подождать, прежде чем повторять запрос.

Ситуации, которые приводят к ошибке 429, могут быть разными. Например:

  • Клиент пытается зайти на сайт несколько раз. Например, он забыл пароль и делает несколько попыток ввести логин с разными вариантами пароля. В итоге сервер блокирует посещение.

  • На сайт зашло слишком много посетителей за короткий отрезок времени.

  • SEO-специалисты применили интенсивные методы сканирования сайта, например, парсинг.

  • На сайт ведется DDoS-атака — кибератака с целью довести до отказа веб-систему или затруднить доступ к ней. При работе с облаком защититься от таких атак может помочь специальный сервис Сloud.ru.

Если пользователь получил код 429, ему придется подождать, пока сервер не снимет запрет на запросы. И впредь делать запросы не так часто. Если ошибка вызвана сканированием сайта, то нужно настроить интенсивность этой операции.

Администратору же нужно:

  • Ограничить скорость запросов с одного IP-адреса.

  • Кэшировать ответы. Запросы будут направляться в кэш с заранее заготовленным ответом, а не на основную часть сервера.

  • Увеличить мощности сервера, чтобы он имел возможность справиться с возросшим числом запросов.

Серверные ошибки

На цифру 5 начинаются ошибки на стороне самого сервера. При их возникновении посетителю сайта нужно обновить страницу через некоторое время или очистить кэш сайта в браузере. Если не помогло, обратиться к владельцу сайта. 

Какими бывают серверные ошибки и что с ними делать администратору сайта — разберемся далее.

500 — Internal Server Error

Код 500 создан для обозначения сбоя ответа сервера в тех случаях, когда точную причину он выявить не может. Тем не менее самые частые факторы, которые могут привести к ошибке 500, известны. Среди них могут быть:

  • недостаток памяти для выполнения скриптов или ошибка в них;

  • неправильная работа CMS, например, конфликты плагинов;

  • ошибки в файле .htaccess;

  • отсутствие поддержки CMS версией PHP, которой пользуется сервер.

Действия по устранению типичных причин ошибки 500 будут такими:

  1. Изучить скрипты сайта. В первую очередь нужно обратить внимание на ошибки скрипта и его размер. Если ошибки есть, исправить их. Сократить скрипт, если он занимает слишком много памяти. Увеличить объем оперативной памяти, если есть такая возможность.

  2. Перейти на сервер с лучшими техническими характеристиками. Например, объем оперативной памяти у серверов Bare Metal достигает 128 ГБ, а размеры хранилища данных — до 1 ТБ.

  3. Поработать в панели CMS. Почитать логи, обратить внимание на сообщения об ошибках и события, которые им предшествовали. Например, если ошибку вызвал плагин, отключить или удалить его.

  4. Поискать ошибки в файле .htaccess. Исправить ошибки, если они будут найдены.

  5. Изучить характеристики CMS и найти информацию, какие версии PHP он поддерживает. Также почитать о том, с какими CMS работает версия PHP на сервере.

502 — Bad Gateway

Посетитель получает ошибку 502, если сервер, с которым он связывается, является интернет-шлюзом или прокси-сервером. При этом этот сервер получает отказ от основного сервера. 

К этой ошибке чаще всего приводят такие факторы:

  • Большая нагрузка на сервер. С этим может столкнуться как сервер-шлюз, так и основной сервер.

  • Срабатывание брандмауэра на сервере. Например, он может блокировать определенного интернет-провайдера.

  • Некорректная работа браузера у посетителя.

  • Проблемы с подключением к интернету. Сюда относятся, например, неправильная настройка DNS-адресов или прерывание соединения.

  • Нарушения сетевой связности. 

Как администратор сайта может устранить ошибку 502:

  • Увеличить мощность сервера. Например, для этого можно перейти на более продвинутый тариф облачного сервера. Или использовать сервис для автомасштабирования ресурсов в сочетании с балансировщиком нагрузки, распределяющим входящий трафик между серверами. 

  • Проверить подключение сервера к интернету. Исправить неполадки, если они будут обнаружены.

  • Если брандмауэр блокирует ряд провайдеров, поставить исключения на них.

503 — Service Unavailable

Код 503 сервер отправляет, если не может обработать запрос по техническим причинам. 

К ошибке 503, как правило, приводят такие факторы:

  • много запросов от клиента, с которыми сервер не может справиться;

  • конфликты между плагинами и расширениями CMS;

  • сложные скрипты, которые дополнительно нагружают сервер;

  • передача слишком больших файлов по HTTP;

  • нарушения сетевой связности. 

Какие меры можно предпринять, чтобы исправить ошибки, вызывающие код 503:

  • Снизить нагрузку на сервер: например, настроить параметр Retry-After. Он установит время, через которое посетитель сможет выполнить новый запрос. Еще один способ — увеличить мощности сервера.

  • Найти дополнения CMS, которые вызывают ошибку, и отключить их. Упростить сложные скрипты. Передавать крупные файлы по протоколу FTP.

504 — Gateway Timeout

Код 504 отправляет сервер-шлюз, который не дождался ответа от основного сервера. 

Почему так происходит:

  • Резко увеличилось число запросов от клиентов. Сервер не успевает справиться с ними.

  • Ошибки элементов CMS.

  • Проблемы соединения сервер-шлюза и основного сервера.

  • Сервер недавно перенесли на другой IP-адрес. Запросы какое-то время будет принимать старый DNS-адрес, который не сможет направить их на новый IP.

  • Нарушения сетевой связности.

Как исправить:

  • Подождать, пока станет меньше посетителей ресурса, или применить параметр Retry-After.

  • Проверить подключение между основным сервером и сервером-шлюзом.

  • Посмотреть конфигурацию CMS. Обратить внимание на проблемные элементы, отключить или удалить их.

  • Если ресурс был перенесен на другой IP, просто дождаться обновления DNS.

Проблемы сетевой связности поможет исключить StormWall: Anti-DDoS+WAF. Этот продукт даст комплексную защиту ресурсу и веб-приложениям.

507 — Insufficient Storage

Код 507 возникает, когда на сервере в хранилище нет места для успешной обработки запроса клиента. В этой ситуации владельцу сайта нужно увеличить хранилище или дождаться, пока снизится число запросов.

Как узнать код состояния HTTP

Есть несколько способов проверки кода HTTP. Поговорим о каждом из них.

Проверка в браузере

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

Проверка в DevTools

Инструменты разработчика (или DevTools) — это раздел браузера для просмотра подробной информации о сайте. В этом разделе можно посмотреть HTML-код страницы, изучить и загрузить каждый файл, который в нем используется, посмотреть логи. Также там можно и посмотреть код состояния HTTP. 

Действия для Google Chrome будут такими:

  1. Откройте «Инструменты разработчика». Для этого нажмите F12, Ctrl+Shift+I или выберите в меню «Дополнительные инструменты» — «Инструменты разработчика».

  2. Выберите раздел «Сеть». В столбце «Статус» будет код состояния HTTP для  каждого из элементов страницы.

Коды HTTP в инструментах разработчика Google Chrome
Коды HTTP в инструментах разработчика Google Chrome

Чтобы посмотреть HTTP-статус в Mozilla Firefox, нужно выполнить те же действия, что и в Chrome. Только таблица с элементами и статусом будет в нижней части окна.

Коды HTTP в инструментах разработчика Mozilla Firefox
Коды HTTP в инструментах разработчика Mozilla Firefox

Проверка в веб-сервисах

Для проверки HTTP-статуса можно обратиться к онлайн-сервисам. На Яндекс.Вебмастер URL можно проверить с помощью поискового робота, а также параметра If-Modified-Since. При этом для получения кода HTTP и других характеристик ответа сайта следует выбрать нужные параметры и нажать «Проверить».

Проверка кода HTTP в Яндекс.Вебмастер
Проверка кода HTTP в Яндекс.Вебмастер

Как ошибки HTTP влияют на работу сайта и компании

Владельцу сайта важно следить за тем, чтобы у ресурса не было ошибок HTTP. Их наличие снижает популярность ресурса у пользователей и заставляет предположить, что сайт может быть мошенническим.

Отдельно важно учесть, что:

  • Если администратор временно выставил страницу-перенаправление с кодом HTTP 3xx, то ему нужно вернуть ее изначальный адрес в самое ближайшее время. В противном случае поисковые роботы начнут воспринимать временное перенаправление как постоянное. 

  • Сайт, где много страниц с ошибками 4xx и 5xx, поисковики могут понизить в выдаче.

Коротко о кодах ошибок HTTP

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

Владельцу веб-ресурса минимизировать число HTTP-ошибок поможет использование сервера с хорошей производительностью, а также актуальных инструментов мониторинга.

Содержание

  • HTTP-сообщения и их структура
  • Информационные коды
  • Коды успешных запросов
  • Коды перенаправления
  • Коды клиентских ошибок
  • Серверные ошибки
  • Как узнать код состояния HTTP
  • Как ошибки HTTP влияют на работу сайта и компании
  • Коротко о кодах ошибок HTTP

Вам может понравиться