Почему сервер запрещает HTTP HEAD?

Я обнаружил, что есть серверы, которые отвечают с HTTP 405 на HEAD запросы (или другой код состояния, включающий 404, что вводит в заблуждение IMO, но это сейчас не важно), хотя GET запросы отвечают HTTP 200. HTTP 405 определяется как...

405 метод не разрешен

Метод, указанный в строке запроса, не разрешен для ресурса, идентифицируемого Request-URI. Ответ ДОЛЖЕН включать заголовок Allow, содержащий список допустимых методов для запрошенного ресурса.

Хорошо, я посмотрел на Allow заголовок и узнал, что я могу использовать GET чтобы получить ресурс (хотя я только хотел узнать, существует ли ресурс). Задача решена.

Тем не менее, мой вопрос... Почему сервер запрещает HEAD метод? В чем преимущество? Есть ли возможные причины безопасности?

1 ответ

Я думаю, это потому, что они получают журнал, полный ошибок "запрошенный ресурс доступен только через SSL", когда их HTTPS-сайт получает тонны запросов HEAD через HTTP. Я думаю, что они связывают "метод" с "протоколом", и поэтому мышление 405 имеет смысл.

В этом посте приведен пример того, как кто-то спрашивает о проблеме и получает 405.

Другие вопросы по тегам