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

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

https://t.me/AlexxSafonov

Введение

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

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

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

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

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


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

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

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


400 плохой запрос

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

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

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

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

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

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

403 запрещено

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

Права доступа к файлам

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

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

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

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

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

Копировать

htaccess

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

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

Индексный файл не существует

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

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

404 не найдено

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

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

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

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

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

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


Служба 503 недоступна

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

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

504 Gateway Timeout

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

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

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

Заключение

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

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




Report Page