Ошибки

Ошибка 501 Not Implemented: что значит и как исправить

501 Not Implemented — сервер не умеет того, что нужно для ответа на запрос. Типичный случай, который называет стандарт, — незнакомый серверу метод запроса. В отличие от 405, речь не об одном адресе: этот метод сервер не поддерживает нигде.

Обновлено 07.10.2026≈ 4 мин чтения
Содержание 10

Что означает код 501

По стандарту HTTP код 501 значит: сервер не поддерживает возможность, нужную для ответа на запрос. Типичный случай — сервер не знает метода запроса и не поддерживает его ни для одного адреса. Ответ 501 браузеры и прокси могут сохранить в кэше, если сервер не указал иное.

Стандарт обязывает сервер общего назначения поддерживать только два метода — GET и HEAD, остальные необязательны. Поэтому 501 в ответ на PATCH или PROPFIND — нормальное поведение сервера, который эти методы не реализует.

Чем 501 отличается от 405

КодЧто не такПоможет ли другой адресЧто сервер обязан прислать
405Метод не принимается по этому адресуВозможно: по другим адресам метод может работатьЗаголовок Allow со списком методов
501Сервер не поддерживает метод или другую нужную возможностьНет: ни по одному адресуОсобых требований нет

Если вы посетитель

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

Когда 501 отвечает nginx

nginx отвечает 501, если клиент передаёт тело запроса способом, которого nginx не знает. Способ указывают в заголовке Transfer-Encoding, и nginx принимает в нём только значение chunked (в любом регистре букв). Стандарт HTTP/1.1 как раз советует отвечать 501 на незнакомый способ передачи. В журнал ошибок nginx пишет строку такого вида на уровне info:

client sent unknown "Transfer-Encoding": "gzip"

Как включить уровень info в журнале, рассказано в разборе ошибки 400.

На методы PUT или DELETE к обычным файлам, которые nginx отдаёт сам, он отвечает не 501, а 405.

Когда 501 отвечает программа

  • Встроенный сервер Python, который запускают командой python3 -m http.server, умеет только GET и HEAD, а на другие методы отвечает 501 с пояснением «Unsupported method».
  • API, в котором нужный метод ещё не сделан, может ответить 501 — так он сообщает, что такой возможности пока нет.

Посмотреть весь обмен с сервером поможет curl:

curl -v -X PATCH https://example.com/api/items/1

Ключ -X задаёт метод запроса, -v показывает заголовки запроса и ответа. Если в ответе стандартная страница с подписью nginx внизу, ответил nginx; если сообщение в формате API — приложение.

Как исправить

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

Незнакомый Transfer-Encoding. Исправьте программу, которая отправляет запрос: nginx принимает только chunked.

Встроенный сервер Python. Он годится, чтобы быстро раздать файлы, а не для API. Для приложения используйте фреймворк или полноценный сервер.

501 и поиск Яндекса

По справке Яндекса, ответ 501 значит, что у сервера нет возможностей, нужных для обработки запроса: например, он не распознаёт метод запроса ни для одного ресурса. Яндекс советует добавить поддержку нужных методов или исправить настройки сервера.

Чем 501 отличается от соседних кодов

КодКогда возникает
400Запрос испорчен
405Метод не принимается по этому адресу, а по другим может работать
500Ошибка в программе сайта или в настройках сервера
501Сервер не поддерживает метод или другую нужную возможность — ни для одного адреса

Источники

Сверено 6 октября 2026 года.

Что почитать дальше

Проверено и обновлено: 07.10.2026