Почему сервер запрещает 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.