Ошибка HTTP «405 Method Not Allowed»: Как решить проблему

Веб-серверы информируют клиентов, например, интернет-браузеры, о статусе обработки отправленного запроса с помощью кодов состояния HTTP. Существуют различные коды, которые подтверждают успех или неудачу запроса — наряду с весьма специфическими сообщениями. Хотя некоторые из этих сообщений встречаются относительно часто при ежедневном использовании Всемирной паутины, ошибка 405 (Method Not Allowed) является одним из более редких сообщений об ошибках. В этой статье вы узнаете, что именно приводит к появлению этого сообщения об ошибке и почему решение проблемы является обязанностью оператора сайта.

Что стоит за ошибкой 405 HTTP?

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

  • GET: Получение информации, связанной с определенным ресурсом URL.
  • HEAD: получение информации о заголовке, связанной с ресурсом URL.
  • POST: Отправка данных на веб-сервер — например, данных формы.
  • PUT: Заменить данные для определенного URL новыми данными, переданными клиентом.
  • DELETE: удалить данные для соответствующего URL.

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

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

Точная формулировка сообщения 405 HTTP варьируется от сервера к серверу. Вот некоторые общие фразы:

  • 405 Метод не разрешен
  • 405 Не разрешено
  • Метод не разрешен
  • Ошибка HTTP 405
  • HTTP ошибка 405 — метод не разрешен
  • HTTP 405 Метод не разрешен
  • Ошибка: 405 Метод не разрешен
  • 405 — HTTP-глагол, используемый для доступа к этой странице, не разрешен
  • HTTP Статус 405 — HTTP-метод GET не поддерживается данным URL-адресом

Когда возникает ошибка 405?

Мы уже указывали, что ошибка 405 вызвана исключительно проблемой на стороне сервера. Но поскольку код статуса 405 технически относится к сообщениям об ошибках клиента (коды с шаблоном 4xx), это кажется бессмысленным. Однако это противоречие быстро разрешается: если вы, как пользователь браузера, направляете веб-серверу запрос с HTTP-методом, который он не разрешает в силу своей конфигурации, то с точки зрения сервера ошибка лежит на стороне клиента — в этом случае клиент просто сделал неправильный запрос. При обработке запроса сервер не знает о том, что вас интересует только предложение сайта, например, заполнить контактную форму.

В частности, три сценария могут привести к появлению сообщения об ошибке «Метод не разрешен»:

  • Запрет соответствующего метода HTTP связан с неправильной конфигурацией веб-серверов или программных компонентов, которые должны выполнять соответствующее действие для нужного ресурса URL.
  • Запрет HTTP-метода исходит от оператора сайта — в большинстве случаев по соображениям безопасности. Ошибка кроется в URL-ресурсе рассматриваемого веб-проекта на том основании, что его программирование требует, чтобы его метод не был разрешен.
  • Метод HTTP не разрешен хостинг-провайдером оператора веб-сайта. Особенно это касается метода POST, который необходим для ввода данных и блокируется некоторыми провайдерами из соображений безопасности при доступе к HTML-документам.

HTTP-ошибка 405: как устранить проблему

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

Если вы сами отвечаете за сайт, который выдает посетителям HTTP-код 405, то обстоятельства, конечно, другие: В зависимости от причины появления сообщения об ошибке, у вас есть несколько вариантов решения проблемы. Чтобы не разозлить своих пользователей и/или не попасть под санкции поисковых систем, вам следует устранить ошибку как можно быстрее.

Решение 1: Включите методы HTTP

Если вы не уверены в причине сообщения «405 Method Not Allowed», всегда следует сначала посмотреть на настройки программных компонентов, которые отвечают за ответ на HTTP-запросы. Обычно этим занимается веб-сервер, но предварительно подключенный прокси или HTTP-обработчик (в веб-приложениях ASP.NET) также может быть ответственен за проблему, если метод просто не включен. Поскольку различные приложения отличаются друг от друга в плане конфигурации, сначала необходимо выяснить, как функционирует активация или деактивация HTTP-методов для каждого программного обеспечения.

Для веб-серверов Apache включенные методы задаются, например, с помощью модуля mod_allowmethods. Это можно контролировать с помощью директивы AllowMethods в контейнерах <Location>, которые необходимы для указания настроек для одного или нескольких нужных URL. Одна из конфигураций, обеспечивающая доступ к ресурсу, а также ввод данных на стороне клиента, может быть реализована с помощью следующей записи:

<Location "/">
  AllowMethods GET POST OPTIONS
</Location>
Примечание

В старых версиях Apache разрешенные методы HTTP определяются с помощью директив <Limit> и <LimitExcept>

Решение 2: Очистите исходный код

Если вы намеренно заблокировали HTTP-метод, например, чтобы гарантировать безопасность сайта (обычная практика для метода PUT), но клиент все равно вызывает такой запрос для получения ресурсов URL, это часто связано с неправильным программированием сайта. Таким образом, запрашиваемая страница или элемент неверно связаны с методом, поэтому логичным следствием является ошибка 405. Решение состоит в том, чтобы найти проблемный код в соответствующем HTML-документе и заменить введенный код на правильный метод запроса. Если конфигурация сервера и исходный код будут согласованы, то велика вероятность того, что ошибка 405 HTTP исчезнет из окна браузера вашего посетителя.

Решение 3: Обойти барьер безопасности провайдера

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

Вы можете предоставить сайт с другим типом MIME, доступным для желаемого метода, чтобы обойти барьер. POST, например, обычно отключается для HTML-страниц, в то время как метод функционирует в документах PHP. Если вы измените тип расширения, например, с index.html на index.php, велика вероятность, что вы решите проблему «405 Method Not Allowed».

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

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

ErrorDocument 405 /PathToFile/example.html

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

Оцените статью
cdelat.ru
Добавить комментарий