Как устранить общие коды ошибок HTTP

Вступление

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

  • 1xx: Информационный
  • 2xx: Успех
  • 3xx: Перенаправление
  • 4xx: ошибка клиента
  • 5xx: Ошибка сервера

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

Обзор ошибок клиента и сервера

Ошибки клиента или коды состояния HTTP от 400 до 499 являются результатом HTTP-запросов, отправленных пользовательским клиентом (например, веб-браузером или другим HTTP-клиентом). Несмотря на то, что эти типы ошибок связаны с клиентом, часто бывает полезно узнать, какой код ошибки пользователь встречает, чтобы определить, может ли потенциальная проблема быть исправлена ​​с помощью конфигурации сервера.

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

Общие советы по устранению неполадок

  • При использовании веб-браузера для тестирования веб-сервера обновите браузер после внесения изменений в сервер
  • Проверьте журналы сервера для получения дополнительной информации о том, как сервер обрабатывает запросы. Например, веб — серверы , такие как Apache или Nginx производить два файла под названием access.logи error.logкоторые могут быть отсканированы для соответствующей информации
  • Имейте в виду, что определения кода состояния HTTP являются частью стандарта, который реализуется приложением, обслуживающим запросы. Это означает, что фактический код состояния, который возвращается, зависит от того, как серверное программное обеспечение обрабатывает конкретную ошибку — это руководство должно обычно указывать вам в правильном направлении

Теперь, когда у вас есть высокоуровневое понимание кодов состояния HTTP, мы рассмотрим часто встречающиеся ошибки.

Ошибка 400, неверный запрос

Код состояния 400 или ошибка с плохим запросом означает, что HTTP-запрос, отправленный на сервер, имеет неверный синтаксис.

Вот несколько примеров того, когда может возникнуть ошибка 400 Bad Request:

  • Файл cookie пользователя, связанный с сайтом, поврежден. Очистка кеша браузера и файлов cookie может решить эту проблему
  • Неверный запрос из-за неисправного браузера
  • Неверный запрос из-за ошибки пользователя при ручном формировании HTTP-запросов (например, curlнеправильное использование )

401 Несанкционированный

Код состояния 401 или Несанкционированная ошибка означает, что пользователь, пытающийся получить доступ к ресурсу, не прошел проверку подлинности или не прошел проверку подлинности. Это означает, что пользователь должен предоставить учетные данные, чтобы иметь возможность просматривать защищенный ресурс.

Примерный сценарий, в котором будет возвращена ошибка 401 Unauthorized, заключается в том, что пользователь пытается получить доступ к ресурсу, который защищен HTTP-аутентификацией, как в этом учебнике по Nginx . В этом случае пользователь получит код ответа 401, пока он не предоставит действительное имя пользователя и пароль (тот, который существует в .htpasswdфайле) на веб-сервере.

403 Запрещено

Код состояния 403 или запрещенная ошибка означает, что пользователь сделал действительный запрос, но сервер отказывается обслуживать запрос из-за отсутствия разрешения на доступ к запрашиваемому ресурсу. Если вы столкнулись с ошибкой 403 неожиданно, есть несколько типичных причин, которые объясняются здесь.

Разрешения для файлов

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

Чтобы привести пример устранения ошибки 403, предположим следующую ситуацию:

  • Пользователь пытается получить доступ к индексному файлу веб-сервера, начиная с http://example.com/index.html
  • Рабочий процесс веб-сервера принадлежит www-dataпользователю
  • На сервере индексный файл находится по адресу /usr/share/nginx/html/index.html

Если пользователь получает ошибку 403 Forbidden, убедитесь, что у www-dataпользователя есть достаточные разрешения для чтения файла. Как правило, это означает, что другие разрешенияфайла должны быть установлены для чтения . Существует несколько способов обеспечить это, но следующая команда будет работать в этом случае:

sudo chmod o=r /usr/share/nginx/html/index.html

.htaccess

Другой потенциальной причиной 403 ошибок, часто умышленно, является использование .htaccessфайла. .htaccessФайл может быть использован , чтобы запретить доступ определенных ресурсов для конкретных IP — адресов или диапазонов, например.

Если пользователь неожиданно получает 403 Forbidden ошибку, убедитесь, что это не вызвано вашими .htaccessнастройками.

Файл индекса не существует

Если пользователь пытается получить доступ к каталогу, у которого нет файла индекса по умолчанию, а списки каталогов не включены, веб-сервер вернет 403 Запрещенную ошибку. Например, если пользователь пытается получить доступ http://example.com/emptydir/, и в emptydirкаталоге на сервере нет индексного файла, возвращается статус 403.

Если вы хотите, чтобы списки каталогов были включены, вы можете сделать это в настройках своего веб-сервера.

404 Не Найдено

Код состояния 404 или ошибка « Не найден» означает, что пользователь может взаимодействовать с сервером, но он не может найти запрошенный файл или ресурс.

Ошибки 404 могут возникать в самых разных ситуациях. Если пользователь неожиданно получает ошибку 404 Not Found, вот несколько вопросов, которые необходимо задать при устранении неполадок:

  • Имеет ли ссылка, направляющая пользователя на ваш ресурс сервера, опечатку?
  • Пользователь вводил неверный URL-адрес?
  • Имеется ли файл в правильном месте на сервере? Был ли ресурс перемещен или удален на сервере?
  • Конфигурация сервера имеет правильное расположение корневого каталога?
  • Имеет ли пользователь, которому принадлежит рабочий процесс веб-сервера, привилегии для перехода к каталогу, в котором находится запрошенный файл? (Подсказка: для доступа к каталогам требуются разрешения на чтение и выполнение)
  • Доступен ли ресурс символической ссылке? Если это так, убедитесь, что веб-сервер настроен так, чтобы следовать символическим ссылкам

500 — внутренняя ошибка сервера

Код состояния 500 или Internal Server Error означает, что сервер не может обработать запрос по неизвестной причине. Иногда этот код появляется, когда более конкретные ошибки 5xx более уместны.

Наиболее распространенной причиной этой ошибки является неверная конфигурация сервера (например, неверный .htaccessфайл) или отсутствующие пакеты (например, попытка выполнить PHP-файл без установки PHP правильно).

502 Неверный шлюз

Код состояния 502 или ошибка « Бад-Шлюз» означает, что сервер является шлюзом или прокси-сервером, и он не получает действительного ответа от серверных серверов, которые должны фактически выполнять запрос.

Если рассматриваемый сервер является обратным прокси-сервером, например балансировщиком нагрузки, вот несколько вещей, которые нужно проверить:

  • Бэкэнд-серверы (где перенаправляются HTTP-запросы)
  • Обратный прокси настроен должным образом, при этом указаны соответствующие внутренние
  • Сетевое соединение между серверными серверами и обратным прокси-сервером является здоровым. Если серверы могут взаимодействовать на других портах, убедитесь, что брандмауэр разрешает трафик между ними
  • Если ваше веб-приложение настроено на прослушивание в сокете, убедитесь, что сокет существует в правильном месте и что у него есть соответствующие разрешения

Сервис 503 недоступен

Код состояния 503 или ошибка недоступности службы означает, что сервер перегружен или находится под техническим обслуживанием. Эта ошибка подразумевает, что услуга должна стать доступной в какой-то момент.

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

Ошибка 504 Время ответа сервера истекло

Код состояния 504 или ошибка тайм-аута шлюза означает, что сервер является шлюзом или прокси-сервером, и он не получает ответ от серверных серверов в течение разрешенного периода времени.

Обычно это происходит в следующих ситуациях:

  • Сетевое соединение между серверами плохое
  • Бэкэнд-сервер, выполняющий запрос, слишком медленный, из-за низкой производительности
  • Длительность таймаута шлюза или прокси-сервера слишком коротка

Заключение

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

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

Советские трансформаторы сухие трансформаторы купить в наличии. напрямую с завода-производителя.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *