Подтвердить что ты не робот

Почему программное обеспечение веб-сервера запрещает запросы PUT и DELETE?

Я пытаюсь реализовать протокол REST и понял, пытаясь отладить, что мой веб-сервер запрещает запрос PUT.

Я протестировал и подтвердил это, выполнив:

curl -X PUT  http://www.mywebserver.com/testpage

Что для моего веб-сервера возвращает 403 - Запрещенная ошибка.

То же самое происходит и для DELETE, где для POST и GET все в порядке.

Мне интересно, является ли распространенная проблема тем, кто использует REST-встречу и что может быть вокруг?

Могу ли я сделать простое изменение в файле .htaccess? Или мне нужно изменить протокол, чтобы установить скрытую переменную "_method" в строке запроса POST?

4b9b3361

Ответ 1

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

Вы не говорите, какой именно сервер, но, например, вы можете сказать Apache, который методы, позволяющие с директивой:

например:

<Limit POST PUT DELETE>
  Require valid-user
</Limit>

Похоже, может быть, какой-то полезный sysadmin использовал это, чтобы блокировать не GET/POST

Вы можете попробовать .htaccess с помощью

<Limit GET POST PUT DELETE>
  Allow from all
</Limit>

(Я не эксперт в apache, это может быть не совсем правильно)