Мы являемся порталом сравнения цен и регулярно сканируем определенные веб-сайты. Я ищу способ сэкономить пропускную способность, избегая загрузки одной и той же страницы снова и снова, если содержимое не изменилось, и вместо этого выполняю только заголовочный запрос. Поскольку интересующие нас веб-сайты являются динамическими по своей природе, поле Last-Modified или Content-Length не являются надежным индикатором того, изменилась ли определенная веб-страница или нет. Поле ответа Etags или, что еще лучше, ответ MD5, вероятно, будет работать нормально. Однако большинство серверов не генерируют MD5 содержимого для каждого запроса, вероятно, потому, что это подразумевает некоторую нагрузку на ЦП для каждого ответа и замедлит их вместо того, чтобы сэкономить некоторую пропускную способность и, таким образом, сделать их быстрее.
Мой вопрос: существует ли общепринятый метод создания HTTP-запроса, который побуждает сервер генерировать Etags или заголовок MD5 для ответа?
Для этого нет возможности. Вы не можете попросить сервер вернуть что-либо дополнительно, если веб-сайт не предоставляет для этого специальный API.
HTTP-запрос заголовка?
Его возврат такой же, как и GET, но без тела.