libcurl C : какие параметры следует прослушивать при проверке обновления веб-страницы?

#c #curl #web-scraping #https #libcurl

Вопрос:

Недавно я использовал libcurl для определения того, когда конкретная веб-страница была обновлена, прослушивая изменения на странице HTTPS status code по CURLINFO_RESPONSE_CODE умолчанию .

Однако сейчас я пытаюсь извлечь недавно загруженные данные с другой веб-страницы, но они HTTPS status code остаются неизменными 200 даже тогда, когда страница была обновлена новой информацией.

Таким образом, существуют ли какие-либо другие параметры, которые можно отслеживать, чтобы как можно быстрее уведомить об изменении содержимого страницы? Сначала я подумал о том, чтобы подсчитать количество байтов на странице, когда она возвращается с помощью моей функции libcurl, а затем проверить, отличается ли длина следующего ответа в байтах (следовательно, сигнализируя о том, что на страницу добавлен какой-то новый контент).

Однако это приложение зависит от времени, и этот метод подсчета количества байтов и сравнения для каждого запроса-ответа может быть не лучшим подходом с точки зрения задержки, а также может быть не особенно точным (например, возможно, такой аспект в заголовке, как «попадание/промах с cloudfront», может привести к другому размеру страницы, даже если не загружено никакого нового внешнего контента).

Краткий вопрос:

Существуют ли какие-либо параметры (возможно, в заголовке ответа?), кроме тех HTTPS status code , которые можно отслеживать, libcurl чтобы как можно быстрее проверить, была ли страница обновлена каким-либо новым контентом?

Комментарии:

1. Может HTTP HEAD быть, запрос-это то, что вам нужно? curl.se/libcurl/c/CURLOPT_NOBODY.html

2. Спасибо за предложение. Я использовал HEAD запросы, но я больше ищу параметры в этом запросе, которые могут измениться, тем самым уведомляя меня об обновленном содержимом.

3. Возможно, вы ищете If-Modified-Since в протоколе HTTP.