Ошибка 501 Not Implemented: что значит и как исправить
501 Not Implemented — сервер не умеет того, что нужно для ответа на запрос. Типичный случай, который называет стандарт, — незнакомый серверу метод запроса. В отличие от 405, речь не об одном адресе: этот метод сервер не поддерживает нигде.
Содержание 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 | Сервер не поддерживает метод или другую нужную возможность — ни для одного адреса |
Источники
- RFC 9110, раздел 15.6.2 — определение кода 501; раздел 9.1 — обязательные методы.
- RFC 9112, раздел 6.1 — ответ на незнакомый способ передачи.
- Исходный код nginx: ngx_http_request.c — проверка Transfer-Encoding.
- Исходный код Python: модуль http.server.
- Яндекс Вебмастер: коды ответа HTTP.
Сверено 6 октября 2026 года.
Что почитать дальше
- Ошибка 405 Method Not Allowed — когда метод не принимается по одному адресу.
- Коды ответа HTTP — полный список с расшифровкой.
- Ошибка 500 Internal Server Error — когда сломалась программа сайта.
- VPS для разработчика — где запускать свои приложения и API.
Проверено и обновлено: 07.10.2026