Разное

Коды ошибок и состояния HTTP. Обзор самых частых ошибок HTTP протокола

Коды ошибок и состояния HTTP. Обзор самых частых ошибок HTTP протокола

Доброго времени суток всем читателям блога сайт! Наверняка почти каждый из вас, пользователей интернета, сталкивался с такой проблемой – вместо страницы сайта вдруг возникает сообщение 500 internal server error , что означает — внутренняя ошибка сервера.

Цифра 500 в данном случае — это код статуса протокола HTTP, который расшифровывается как указание на то, что конфигурация сервера нарушена. То есть, возникает определенная ошибка на сервере, или же один из его узлов дал сбой ил отказал полностью. Такая ошибка – это не вина вашего сайта, ее можно наблюдать на самых разных сайтах, построенных на самых разных CMS.

Часто 500 ошибка сервера может возникнуть в Joomla, WordPress, OpenCart, Битрикс, DLE и многих других, даже самописных. Но, хоть от нас здесь мало что зависит, я предлагаю все же рассмотреть наиболее распространенные причины, по которым может возникнуть ошибка сервера, а также некоторые (они все же есть) способы устранения ошибки 500.

Это сообщение может значить, что программная сторона вашего сервера рабочая технически, но время от времени появляются непредвиденные внутренние ошибки. Как результат – ваш запрос не обрабатывается в рабочем режиме, поэтому через отведенное время в ответ на неотвеченные запросы пользователю (в данном случае это браузер посетителя или поисковая система), отдается код ошибки сервера 500.

А возникать ошибка сервера может по самым разным причинам, и их все не перечислишь. Но можно попробовать рассмотреть варианты, встречающиеся чаще других – хотя бы в плане самообразования. Стандартная страница внутренней ошибки сервера выглядит так:

Из-за чего показывается ошибка 500 и как исправляется

  1. Неправильно выставлены права доступа на директории сайта и/или их файлы. Это ваш недосмотр или неведение, но ошибки сервера в этом случае имеют место быть. Если на файлы, написанные на php и размещенные на вашем хостинге, установлены права на запись 777, то скрипты могут блокироваться сервером и не выполняться. Вам, соответственно, браузер покажет ошибку 500. Хотя все в этом случае зависит от настроек хостера. Поэтому выбирайте надежного партнера, с весомыми рекомендациями. Случаться эта неприятность может, потому что права доступа 777 позволяют всем пользователям аккаунта проводить любые операции с файлами и папками, что очень сильно влияет на целостность вашего веб-ресурса и его безопасность. Оградить себя от этого может только единоличное управление своим аккаунтом – не давайте никому доступ в корневые папки сайтов!

Как можно решить: Необходимо проверить права доступа на запись всех папок и файлов ваших сайтов. Для папок (директорий) рекомендуется выставлять права доступа 755, для исполняемых скриптов – права доступа 600, а для остальных файлов – права 644. Если нужно установить права 777, то поставщик заранее предупреждает об этом.

  1. Скрипт очень долго выполняется, вследствие чего тоже может появиться код ошибки 500 внутренняя ошибка сервера . На любом хостинге есть ограничения не только по времени исполнения скриптов, но и запреты на исполнение со стороны сервера. И, если сервер не получит ответ в определенный промежуток времени, которое устанавливается в его конфигурации, то работа скрипта завершится в принудительном порядке. Результат такого обрыва — сообщение об ошибке сервера 500.

Как можно решить: Попробуйте оптимизировать скрипт. Найти медленно работающий скрипт несложно – для этого есть специальные сервисы. Еще одно решение – увеличение времени ожидания сервера. Но оно возможно только в том случае, если вы заказали VPS или выделенный сервер, а на обычном виртуальном хостинге это сделать не получится. Разве что техподдержка сделает для вас исключение.

  1. Файл настроек.htaccess может содержать неправильные директивы или такие правила, которые не поддерживаются вашим сервером. Файл.htaccess пишется в очень строгих рамках, и если вы при его настройке допустили какие-то ошибки, то в результате обязательно получите ошибку 500 Internal Server Error. На продвинутых хостингах файл.htaccess предлагается хостером, и ошибок в нем быть не может, если только вы сами их туда не впишете.

Как можно решить: Убедитесь в наличии файла.htaccess. Он должен лежать в корневой директории вашего сайта. Если он есть, сделайте резервную копию файла и удалите его совсем. Сайт без файла.htaccess отлично работает, и если так и случилось – значит, виноват файл, его нужно корректировать или попросить хостера дать новый файл.

Также вы можете изучить логи сервера – в вашей панели управления должна быть такая функция. Все сведения об ошибках записываются в специальный журнал, и вы можете увидеть, когда произошла ошибка и что ее вызвало. Если в файле.htaccess указана неправильная директива, то в файле error.log вы увидите приблизительно такие строчки:

/home/UXXXXX/vash-sait.ru/www/.htaccess: Invalid command "RewritRule", perhaps mis-spelled or defined by a module not included in the server configuration

То есть, в этом сообщении вы увидите, какая директива вызывает ошибку. В нашем примере это директива RewritRule – такой директивы просто не существует. Есть директива RewriteRule, но в нашем примере пропущена одна буква, поэтому сервер отвечает ошибкой.

  1. Скрипт очень большой или многофункциональный, поэтому для его работы нужно большое количество памяти. Такая причина может возникнуть на виртуальном хостинге, где в php настройках сайта устанавливается лимит памяти, а также отслеживается общий объем памяти, потребляемой всеми скриптами и файлами. Если потребление памяти превышает установленный лимит (смотрите свой тарифный план на хостинге), то работа скрипта прекращается и вы получаете долгожданное сообщение error 500 внутренняя ошибка сервера . Устанавливается такое ограничение для того, чтобы предупредить появление повышенной нагрузки на сервер со стороны аккаунтов виртуального хостинга.

Как можно решить: обратитесь в службу технической поддержки хостинга. Если они не помогут устранить ошибку 500 — меняйте хостинг.

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

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

Типы кодов ошибок и состояния HTTP

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

  • 100-199: информационный статус;
  • 200-299: статус успешного запроса;
  • 300-399: статус редиректа;
  • 400-499: ошибки клиента;
  • 500-599: ошибки сервера.

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

1. HTTP 200 «OK»

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

2. Ошибка HTTP 404 «Не найдено»


Сервер не смог найти запрошенную страницу, файл или другой ресурс. Ошибка HTTP 404 указывает на то, что сетевое соединение между клиентом и сервером было успешно выполнено. Возникает, когда пользователь ввел в браузере неправильный URI , или администратор сервера удалил файл, не настроив редирект на новое местоположение. Чтобы устранить эту проблему, пользователи должны набрать правильный URL-адрес .

3. Ошибка HTTP 500 «Внутренняя ошибка сервера»


Сервер получил от клиента действительный запрос, но не смог обработать его. Ошибка HTTP 500 возникает, когда сервер сталкивается с каким-либо техническим сбоем. Например, нехваткой памяти или дискового пространства. Администратор сервера должен исправить эту проблему.

4. Ошибка HTTP 503 «Служба недоступна»


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

5. HTTP 301 «Перемещен навсегда»


Указанный клиентом URI был перемещен в другое место с помощью HTTP-редиректа , который позволяет клиенту получить ресурс с нового местоположения. Браузеры автоматически следуют HTTP-редиректу 301 без необходимости вмешательства со стороны пользователя.

6. HTTP 302 «Найдено» или «Перемещено временно»


HTTP код 302 предназначен для случаев, когда ресурс перемещен временно, а не постоянно. Администратор сервера должен использовать HTTP 302 только в течение коротких периодов обновления (изменения ) контента. Браузеры автоматически выполняют редирект 302 , как и для кода 301 . В версии HTTP 1.1 для указания временных редиректов был добавлен новый код 307 .

7. HTTP 400 «Неверный запрос»


Сервер обнаружил ошибку в данных протокола, полученных от клиента. Обычно это указывает на технический сбой на стороне клиента или повреждением данных в самой сети.

8. HTTP 401 «Не авторизованный»


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

9. HTTP 100 «Продолжить»


Добавленный в версию 1.1 протокола код HTTP ответа 100 был разработан для более эффективного использования пропускной способности сети. Он позволяет серверам подтверждать готовность принимать большие запросы. Протокол Continue позволяет клиенту HTTP 1.1 отправлять небольшое специально сконфигурированное сообщение, запрашивающее ответ сервера с кодом 100 , а затем дожидаться ответа до отправки запроса на дальнейшие действия. Клиенты и серверы HTTP 1.0 не используют этот код.

10. HTTP 204 «Отсутствует контент»


Сервер отправил ответ на запрос клиента, который содержит только информацию заголовка (то есть не содержит тела сообщения ). Клиенты могут использовать HTTP код 204 для более эффективной обработки ответов сервера, избегая, например, ненужного обновления страниц.

11. HTTP 502 «Неверный шлюз»


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

Достаточно часто владельцы хостингов мучаются из-за постоянного возникновения сообщения об (Internal Server Error). Она, как это называется, многим попросту отравляет жизнь. Сейчас мы попробуем кратко разобраться в сути самой ситуации и посмотрим, как же можно избавиться от появления ошибки в будущем.

Ошибка Internal Server Error: что это?

Итак, начнем, пожалуй, с самого значения этого словосочетания. В системе (каталоге) ошибок Windows (и не только) есть ошибка под номером 500, отвечающая Internal Server Error. Перевод этого словосочетания означает внутреннюю ошибку сервера, связанную со статусом

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

Причины возникновения ошибки

Говоря об ошибке Internal Server Error в самом широком понимании, стоит учитывать, что возникать она может на множестве сайтов или ресурсов, написанных с помощью совершенно разных CMS. Тут, кстати, нужно разграничить причины ее возникновения.

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

Не менее распространенной причиной возникновения ошибки Internal Server Error можно назвать отсутствие корректных прав доступа. Так, например, если на PHP файлы скриптов, которые размещены на хостинге, имеют права доступа 777, очень может быть, что их исполнение попросту блокируется сервером, вследствие чего и выдается сообщение об ошибке.

Также одной из причин может быть достаточно долгая работа скриптов. Дело в том, что PHP-ограничения по времени исполнения действуют не только в отношении хостинга, подобные лимиты могут выставляться и со стороны сервера. Иными словами, это несколько напоминает тайм-аут операции. Когда сервер в течение определенного времени не получает ответа на запрос, он попросту блокирует исполнение скрипта.

В некоторых случаях ошибка Internal Server Error может появляться, когда на хостинге наблюдается превышение лимита используемой памяти. Попросту говоря, скрипт для исполнения требует больше положенного, а ведь такой лимит устанавливается не только на PHP, зачастую действуют ограничения по потреблению ресурсов всеми исполняемыми скриптами.

Наконец, одна из самых распространенных ситуаций возникновения ошибки Internal Server Error - это содержание некорректных директив в файле.htaccess (кстати, при работе с движком WordPress это проявляется наиболее часто). Вот теперь мы вплотную подошли к поиску решения для каждой конкретной ситуации.

Ошибка Internal Server Error: как исправить простейшими способами

Для начала посмотрим, что можно сделать при обнаружении неправильных прав доступа. В данном случае позволяют редактировать содержимое абсолютно всем, что, несомненно, сказывается на безопасности. В такой ситуации необходимо их изменить, применив к папкам значение 755, к файлам скриптов - 600, а ко всем стальным файлам данных - 644.

При слишком долгой работе исполняемого скрипта можно попробовать увеличить время ожидания, правда, тут есть одна загвоздка. Такое решение может сработать на выделенном сервере или VPS (Virtual Private Server), а в случае никакого эффекта не будет.

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

Теперь несколько слов о файле.htaccess. Дело в том, что он предполагает использование очень строгого синтаксиса, если при проведении настроек были допущены ошибки или некоторые неточности, избежать появления ошибки Internal Server Error не удастся. Тут нужно поступить следующим образом. Для начала нужно проверить наличие самого файла в корневой директории сайта, после чего, сделав его резервную копию, удалить целиком и полностью. Если после такой процедуры сайт снова станет работоспособным, значит проблема именно в файле.htaccess, который придется проверить на наличие ошибок в синтаксисе.

Проблемы с движком WordPress

С WordPress дело обстоит хуже. Дело в том, что этот движок способен перезаписывать оригинальный файл.htaccess, отвечающий за управление доступом к файлам и папкам хостинга, а ведь оригинальный файл должен создаваться всего один раз, и тем более не в WordPress!

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

В некоторых случаях может потребоваться обновить WordPress до последней версии и отключить функцию перезаписи файла. Для начала скачиваем на компьютерный терминал оригинальный файл.htaccess, затем входим на сайте в папку по пути /wp-admin/includes/ с последующей загрузкой файла misc.php, который необходимо открыть, скажем, в стандартном «Блокноте» (или любом другом текстовом редакторе) и найти строку функции «function save_mod_rewrite_rules». Теперь в самой функции переходим к строке «return insert_with_markers($htaccess_file, "WordPress", $rules);» и заменяем ее на «return true;» (естественно, все команды прописываются без кавычек). Остается только сохранить изменения и загрузить новый файл на хостинг с заменой старого файла misc.php.

Недостатком такого метода является только то, что в данном случае отключается обновление WordPress. При подключении плагинов они работать, естественно, не будут.

Заключение

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

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

Выявление причины

При каждом появлении такого сообщения добавляется дополнительная информация об ошибке. В зависимости от провайдера она заносится в файл Error с расширением.log или в соответствующий раздел хостинга. Открыв указанный файл или зайдя в этот раздел, можно выяснить, почему появляется на экране монитора при попытке посетителя зайти на ваш ресурс во Всемирной паутине ошибка HTTP 500 (Internal Server Error). Ее нужно как можно быстрее устранить, поскольку она приводит к простою вашей странички и, как результат, вы теряете посетителей и прибыль.

Сервер

Достаточно широкий спектр проблем может привести к появлению этого сообщения. Среди них можно выделить:

В первом случае или нужно менять тарифный план на такой, у которого больше памяти, или отключать сам скрипт, если есть возможность работы без него. Также стоит сайт скачать на локальный ПК и проверить антивирусом. Может быть, это связано с его вредоносной деятельностью. Во втором случае решение аналогичное. Возможно, понадобится переустановка неработающего компонента. Перед тем как устанавливать любой модуль на сайт, нужно убедиться в том, что он совместим с ранее установленными. Это лучше делать на этапе разработки. Ну и в последнем случае некорректно установлены права для доступа к папкам и файлам. Для первых они должны быть 755, а у вторых этот параметр должен быть или 644, или 444. Если все это выполнено, а ошибка 500 все также появляется при попытке зайти на страницу, то переходим к следующим действиям, которые связаны с самим ресурсом.

Сам сайт

Наиболее распространенная причина появления такого сообщения - это неправильные параметры внутри.htaccess. Не допускается внутри него наличие таких параметров, как

php_value, php_admin_flag или php_flag. Все они должны быть в обязательном порядке превращены в комментарии посредством значка «#», который устанавливается перед ними. Далее нужно найти такую директиву, как Options +FollowSymLinks, и заменить ее на следующую: Options +SymLinksIfOwnerMatch. Также можно убрать параметр +ExecCGI и после этого проверить отсутствие такого сообщения, как "Ошибка 500". Internal Server Error тоже не должно появиться. Если и это не помогло, то можно в этом же файле удалить MultiViews. После этого нужно повторно попытаться зайти на страницу и проверить работоспособность ресурса.

Резюме

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

Разработчики и люди, профессионально работающие с веб-приложениями, боятся 500 Internal Server Error . Оптимальный способ её устранения зависит от сервера и того, что на нём запущено. В данной статье приводятся советы по диагностике и исправлению ошибки 500 .

Диагностика ошибки 500 Internal Server Error

Важно помнить, что эта ошибка происходит на стороне сервера. Это значит, что HTML-код , выполняемый на стороне клиента, а также JavaScript или любые другие запущенные в браузере объекты, не могут быть источником . Само название (Internal Server Error – ‘внутренняя ошибка сервера’ ) говорит о том, что ошибка происходит на сервере.

Устранение ошибки на популярных платформах

Многие пользователи устанавливают на свой сервер популярные CMS-системы , такие как WordPress , Joomla , Drupal и они не должны вызывать ошибку 500 , если всё настроено правильно. Однако она всё равно всплывает – из-за несовместимости версий, некачественных установок или сбоя прав доступа на сервере.

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

  • Если вы только что обновили движок до новой версии, вероятно, обновление прошло с ошибками и необходимо провести его повторно. Скорее всего, на сайте разработчика есть инструкции, как это правильно сделать.
  • Если вы только что активировали новый плагин или новую тему, стоит попробовать отменить эти изменения. Даже профессионально написанные плагины могут конфликтовать с другими и вызывать 500 Internal Server Error nginx
  • Если вы обновляли CMS , старые плагины и темы могут быть с ней несовместимы. Единственное, что можно сделать в таком случае - отключать их по очереди, пока ошибка 500 не исчезнет.
  • Неправильно заданные права доступа на сервере или ошибки в файле .htaccess . Серверу не удаётся получить доступ к скриптам, файлам и другим ресурсам, поэтому он выдаёт ошибку.

Когда причиной ошибки 500 Internal Server Error являются скрипты и плагины, лучше всего искать ответы на сайтах их разработчиков.

Устранение ошибки на стороне серверных скриптов

Другой причиной ошибки 500 Internal Server Error может стать разработка и тестирование собственных скриптов.

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

  • Настройка прав на сервере : часто неверная настройка прав доступа к файлу или папке приводит к тому, что сервер выдаёт . Из-за того, что ему не удаётся запустить скрипт. Выясните, какие права должны быть настроены, и выставьте их соответствующим образом.
  • Превышено время ожидания : возможно, истекло время ожидания ответа от PHP или другого серверного скрипта. Это происходит из-за того, что недоступен определённый ресурс или коде была допущена ошибка, запускающая бесконечный цикл.
  • Превышено время ожидания соединения с сервером: если сервер был занят, перезагружался или потерял соединение, скрипт может выдать ошибку 500 Internal Server Error . Возможно, в следующий раз ошибки не будет. Но если ошибка появляется при тестировании, велика вероятность того, что она встретится и пользователям.
  • Ошибки в файле.htaccess: в некоторых случаях ошибку 500 может вызывать код, прописанный в файле .htaccess .
  • Ошибки в скрипте: если ошибку выдаёт скрипт, можете запросить у него подробную информацию об ошибке. К примеру, в PHP можно включить вывод ошибок на экран или в лог-файл, добавив директиву display_errors . По умолчанию среда выполнения может скрывать ошибки, но это не очень удобно для отладки программы.

Попросите помощи у системного администратора

В некоторых случаях у разработчиков нет полного контроля над сервером.

Если скрипт запускается на сервере сторонней организации, она может помочь вам в следующем :

Ошибку 500 Internal Server Error довольно легко устранить

500 Internal Server Error — как исправить ? В большинстве случаев причины возникновения ошибки 500 легко исправляются. Проблема заключается в том, что без конкретной информации определение причины возникновения сбоя усложняется. Легче всего справиться с ошибкой, когда разработчик выяснит, что изменилось перед возникновением ошибки.

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

Перевод статьи “500 Internal Server Error: What It Is And How To Fix It ” был подготовлен дружной командой проекта .

Хорошо Плохо