Все локации активны · 99.99% uptime
Протоколы

Механизм кеширования в HTTP-прокси

Кеширование — одна из старейших функций прокси: вместо того чтобы снова и снова скачивать один и тот же контент, сохраняется его копия, и последующие запросы обслуживаются локально. С распространением HTTPS охват этой функции сузился, но она не исчезла полностью — и в вашем собственном конвейере сбора данных она по-прежнему серьёзный источник экономии.

Базовый поток

СХЕМАПоток запроса на прокси с кешем
ПРОЦЕССCONNECT ornek.com:443 HTTP/1.1ПроксикешСервер-источникПриходит запросЕсть ли в кеше?Если нет — идём к источникуСохраняем ответПередаём клиентуПри втором запросе выполняются только первые два шага

При попадании в кеш обращения к серверу-источнику не происходит вовсе. Это выигрыш и в скорости, и в полосе пропускания, и в нагрузке на целевой сервер.

Кто определяет, что будет сохранено?

Решение принимает сервер и сообщает об этом Cache-Control заголовком:

ДирективаЗначение (смысл)Поведение прокси
publicОбщий кеш может сохранятьСохраняет
privateПусть сохраняет только браузерНе сохраняет
no-storeНе сохранять вовсеНе сохраняет
no-cacheМожно сохранять, но проверять при каждом использованииВыполняет условный запрос
max-age=3600Считается свежим 3600 секундВ течение этого срока к источнику не обращается
s-maxage=600Отдельный срок для общего кешаИмеет приоритет над этим значением
Часто путаемая

no-cache, не означает «не сохранять вовсе» — она означает «сохраняй, но перед использованием проверяй». Эквивалент «не сохранять вовсе» — no-store.

Условные запросы: 304 Not Modified

Когда копия в кеше устаревает, прокси не обязан скачивать содержимое заново. Он спрашивает сервер: «актуальна ли ещё имеющаяся у меня версия?»:

СХЕМАУсловный запрос и ответ 304
ПРОВЕРКАПроксиСервер-источникGET /sayfa · If-None-Match: "abc123"304 Not Modified (без тела)Всего несколько сотен байтИспользуется копия из кеша

Ответ 304 не содержит тела; возвращаются только заголовки. Это означает сокращение страницы объёмом 500 КБ до 300 байт.

Использование этого механизма в вашем собственном конвейере сбора данных стоимость полосы пропускания заметно снижает.

Как HTTPS повлиял на кеширование?

Когда установлен туннель CONNECT, прокси не видит содержимого — а значит, и не может его кешировать. Поскольку практически весь веб перешёл на HTTPS, классическое кеширование на прокси во многом перестало работать.

СХЕМАКеширование: HTTP и HTTPS
ВЛИЯНИЕОбычный HTTPСтрока запросаПрокси видит содержимоеДаМожет ли добавлять заголовкиМожет кешироватьДаМожет ли добавлять заголовкиВыполняет условный запросДаМожет ли добавлять заголовкиЭкономия трафикаВысокаяНетДоля на сегодняшний деньОчень низкийПрактически весь веб

Поэтому современное кеширование ушло с уровня прокси на уровень CDN и клиента.

Разворачиваем собственный кеш

Если кеширование на прокси недоступно, тот же выигрыш можно получить в собственном приложении. В конвейерах сбора данных это очень эффективно:

СХЕМАУсловный запрос на основе ETag
Python — простой кеш запросов01import requests, json, hashlib, pathlib0203CACHE = pathlib.Path("onbellek"); CACHE.mkdir(exist_ok=True)0405def anahtar(url):06 return hashlib.sha1(url.encode()).hexdigest()0708def getir(url, session):09 dosya = CACHE / (anahtar(url) + ".json")10 basliklar = {}11 onceki = None12 if dosya.exists():13 onceki = json.loads(dosya.read_text(encoding="utf-8"))14 if onceki.get("etag"):15 basliklar["If-None-Match"] = onceki["etag"]1617 r = session.get(url, headers=basliklar, timeout=25)18 if r.status_code == 304 and onceki:19 return onceki["govde"] # трафик: несколько сотен байт2021 kayit = {"etag": r.headers.get("ETag"), "govde": r.text}22 dosya.write_text(json.dumps(kayit), encoding="utf-8")23 return r.text

Этот простой слой избавляет вас от повторного скачивания редко меняющихся страниц. На ресурсах с тарификацией по GB, таких как резидентные прокси, экономия напрямую отражается на счёте.

Когда кеширование неуместно?

Кеш подходит

  • Редко меняющиеся страницы товаров и категорий.
  • Статические справочные данные.
  • Задачи, где одна и та же страница забирается несколько раз в течение дня.
  • Этап разработки и тестирования (бережёт квоту).

Кеш неуместен

  • Отслеживание цен и наличия в реальном времени.
  • Персонализированный контент.
  • Страницы, требующие сессии.
  • SEO-задачи, отслеживающие изменения позиций.
Внимание

Работа с устаревшими кешированными данными может дать результаты хуже, чем полное отсутствие сбора данных. В чувствительных ко времени областях, таких как цены и наличие, задавайте очень короткий срок кеша или не используйте кеш вовсе.

Резюме

Кеширование на прокси в классическом понимании во многом утратило смысл с распространением HTTPS, поскольку в туннеле CONNECT прокси не видит содержимого. Тем не менее выстроить ту же логику на уровне собственного приложения по-прежнему возможно и очень полезно. Условные запросы на основе ETag убирают почти весь трафик на редко меняющемся контенте. А для чувствительных ко времени данных кеша следует избегать. Для расчёта потребления к нашей статье о полосе пропускания можно посмотреть.

Часто задаваемые вопросы

01Может ли прокси кешировать HTTPS-трафик?

Нет. В туннеле CONNECT прокси переносит зашифрованные байты и не видит содержимого, а значит и не может его сохранить. Поскольку практически весь веб работает по HTTPS, классическое кеширование на прокси во многом утратило смысл.

02В чём разница между no-cache и no-store?

no-cache означает «сохраняй, но перед использованием проверяй», а no-store — «не сохраняй вовсе». Их часто путают, хотя поведение у них разное.

03Сколько экономит 304 Not Modified?

Поскольку тело ответа вообще не передаётся, пересылается лишь несколько сотен байт заголовков. Для страницы объёмом 500 КБ это означает снижение трафика примерно в тысячу раз.

04Стоит ли мне разворачивать собственный кеш?

Если вы снова и снова забираете одни и те же страницы — безусловно да. Особенно если вы используете резидентные прокси с тарификацией по GB: экономия напрямую отражается на счёте.

05Можно ли использовать кеш при отслеживании цен?

Не используйте или задавайте очень короткий срок. Устаревшие данные о ценах ведут к неверным решениям и могут навредить сильнее, чем полное отсутствие данных.

Связанные статьи и страницы

СЛЕДУЮЩИЙ ШАГ

Усильте свою прокси-инфраструктуру уже сегодня.

Начните с платным тарифом за считанные минуты или сначала попробуйте наш бесплатный список прокси.

FREEPROXY.TR

Ищете бесплатные прокси — вы попали по адресу

Комплексная прокси-платформа, где можно посмотреть актуальные адреса бесплатных прокси, сравнить типы HTTP и SOCKS и проверить свои прокси-подключения бесплатными инструментами.