Что означает ответ 501
Код 501 говорит: сервер не распознаёт метод запроса или вообще не умеет выполнять такую функцию. Не «нельзя для этого адреса», а «не реализовано совсем». Так отвечают, например, когда клиент использует редкий метод протокола, который сервер не поддерживает, либо обращается к возможности, которую разработчики ещё не создали.
В отличие от 500, где сервер что-то пытался сделать и споткнулся, здесь сервер честно признаёт: такой функциональности у него нет. В браузерной практике этот код встречается нечасто, поэтому его появление нужно воспринимать всерьёз.
Как 501 отличается от 405 и 500
Ответ 405 означает, что метод известен серверу, но для этого адреса не разрешён: например, нельзя отправлять данные методом POST на страницу только для чтения. Ответ 501 означает, что метод серверу неизвестен вообще. Ответ 500 указывает на внутреннюю ошибку при обработке допустимого запроса.
На практике различие бывает размытым: некоторые серверы и фреймворки используют 501 как заглушку в недоработанных частях программы. Поэтому надёжнее всего смотреть на текст ответа и документацию конкретного сервиса, а не только на число.
Причины появления
Чаще всего 501 возникает по вине клиента или программиста: приложение отправляет нестандартный метод или расширение протокола, которое сервер не обслуживает. Второй вариант — обращение к недоделанному разделу или функции API, которая заявлена, но пока не реализована. Третий — устаревшее или урезанное оборудование, например встроенный веб-сервер роутера или принтера, знающий только самые простые методы.
Есть и вариант с промежуточным узлом: промежуточный сервер или шлюз, не поддерживающий нужный метод, сам формирует ответ 501, и до конечного сервера запрос не доходит.
Проверка по шагам: HTTP 501 Not Implemented
Определите, какое действие вы выполняли. Если это обычное открытие страницы, откройте её в другом браузере и повторите позже: возможно, сервер находится в переходном состоянии после обновления. Если вы работаете с программным интерфейсом, сверьте используемый метод и адрес с документацией.
Проверьте, идёт ли трафик через промежуточный сервер: отключите его на время и повторите запрос. Если ошибка исчезла, дело в посреднике. Если она видна и без него, сервер действительно не реализует функцию. Для внутренних устройств, например роутера, помогает обновление прошивки.
Когда 501 указывает на устаревшее устройство
Ответ 501 нередко приходит не от больших сайтов, а от маленьких встроенных веб-серверов: административных страниц роутеров, камер, принтеров, сетевых накопителей. Такие серверы реализуют лишь минимум методов и на всё остальное отвечают «не реализовано».
Если вы получили 501 при обращении к устройству из локальной сети, проверьте, какое именно действие выполняется: возможно, интерфейс использует расширенный метод, которого нет в старой прошивке. Обновление встроенного программного обеспечения обычно устраняет такое несовпадение. Если обновлений нет, воспользуйтесь другим способом управления, например приложением производителя.
Если ошибка появляется у устройства, которое раньше работало, вспомните, не менялась ли схема подключения: появившийся между вами и устройством промежуточный сервер или переходник иногда не пропускает нестандартные методы, и ответ 501 формирует именно он. Отключите посредника и проверьте ещё раз, чтобы понять, где реальная причина.
Решения: HTTP 501 Not Implemented
Пользователю чаще всего остаётся подождать и повторить позже, а при постоянной ошибке написать в поддержку сайта с указанием действия. Разработчику нужно заменить метод на поддерживаемый или дождаться реализации функции, а при необходимости использовать альтернативный, но штатный способ, предусмотренный документацией.
Администратору стоит проверить, не отключён ли модуль, отвечающий за нужный метод, и не мешает ли ему ограничивающая конфигурация промежуточный сервер или межсетевого экрана.
Если функция нужна именно вам, выясните в документации или у поддержки, планируется ли её реализация, и до тех пор пользуйтесь поддерживаемыми методами. Для внутренних устройств проверьте обновление встроенного программного обеспечения и изучите список возможностей в инструкции производителя, чтобы не тратить время на запросы, которые устройство никогда не поймёт.