Посібник із кешування відповідей та інтеграції CDN

Оптимізуйте продуктивність Smart Money API за допомогою розумних стратегій кешування. Дізнайтеся про HTTP-заголовки кешу, валідацію ETag, інтеграцію з CDN та шаблони кешування на стороні клієнта, щоб зменшити затримки та витрати на пропускну здатність.

Опубліковано 21 березня 2026 року 16 хв читання Продуктивність

Огляд кешування

Кінцеві точки Smart Money API надають дані ринку криптовалют, які змінюються з різною частотою. Деякі дані (адреси китів, ставки фінансування) оновлюються кожні кілька секунд, тоді як інші дані (історичний аналіз, навчальний контент) залишаються статичними протягом годин. Розумне кешування значно покращує продуктивність і знижує витрати.

Smart Money API реалізує трирівневу стратегію кешування:

  • Кеш CDN Edge — Глобальна доставка контенту з автоматичним інвелідацією кешу
  • HTTP-кеш браузера — Кешування на стороні клієнта з використанням стандартних HTTP-заголовків
  • Кеш додатку — Кешування в оперативній пам’яті для часто використовуваних наборів даних

Інсайт продуктивності: Кешовані відповіді обробляються у 50-100 разів швидше, ніж нові запити до API, і значно економлять пропускну здатність. Правильно кешована інтеграція може зменшити передачу даних на 70-85%.

Кожна відповідь Smart Money API містить директиви кешу, які повідомляють клієнтам і CDN, як довго дані залишаються дійсними. Розуміння цих директив і їх правильне застосування є ключовим для оптимальної продуктивності.

Основи кешування

HTTP-кешування працює на основі заголовків відповідей, які вказують, чи можна кешувати контент і як довго.

Заголовок Cache-Control

Основний механізм контролю поведінки кешу. Кожна відповідь Smart Money API містить заголовок Cache-Control, який визначає:

  • max-age — Тривалість у секундах, протягом якої відповідь залишається дійсною
  • public/private — Чи можуть проміжні кеші зберігати її
  • must-revalidate — Чи потрібно перевіряти свіжість перед наданням
  • no-store — Не кешувати чутливі дані

Приклади заголовків кешу

Різні кінцеві точки мають різні вимоги до кешування:

Заголовки відповідей
// Дані адрес китів (оновлюються кожні 5 хвилин)
Cache-Control: public, max-age=300
ETag: "abc123def456"
// Ставки фінансування в реальному часі (оновлюються кожну секунду)
Cache-Control: public, max-age=1
ETag: "xyz789abc123"
// Історичні дані (не змінюються)
Cache-Control: public, max-age=86400, immutable
ETag: "static-content-v1"

Тривалість кешування за типом кінцевої точки

Тип даних Тривалість кешування Випадок використання
Ставки фінансування в реальному часі 1-5 секунд Трейдинг у реальному часі, розміщення позицій
Рухи китів 5 хвилин Підтвердження сигналів, сповіщення
Щоденні дані OHLCV 1 година Технічний аналіз, графіки
Історичний аналіз 24 години Бектестинг, дослідження
Статичний контент 7 днів Документація API, посібники, конфігурація
Отримайте свій API-ключ за 30 секунд

Готові будувати? Отримайте безкоштовний API-ключ (100 викликів/день, без картки) і почніть отримувати дані про кити, фінансування та ончейн-дані в реальному часі.

Отримати API-ключ →

HTTP-заголовки кешу

Відповіді Smart Money API містять кілька заголовків, пов’язаних із кешуванням, які працюють разом для максимальної продуктивності при збереженні свіжості даних.

Cache-Control: Основний заголовок

Контролює поведінку кешування для браузерів і проміжних кешів:

Директиви Cache-Control
// Публічні дані, кешувати на 5 хвилин
Cache-Control: public, max-age=300
// Приватні дані, кешувати лише в браузері
Cache-Control: private, max-age=3600
// Незмінний контент, кешувати назавжди
Cache-Control: public, max-age=31536000, immutable
// Завжди перевіряти перед наданням
Cache-Control: public, max-age=0, must-revalidate
// Не кешувати чутливі дані
Cache-Control: private, no-store, no-cache

Заголовок Expires (застарілий)

Для старих клієнтів Smart Money також надає заголовок Expires (HTTP/1.0):

Заголовок Expires
// Абсолютний час закінчення
Expires: Wed, 22 Mar 2026 14:30:00 GMT
// У HTTP/1.1 пріоритет має max-age з Cache-Control

Заголовок Last-Modified

Вказує, коли контент було востаннє оновлено, що дозволяє умовні запити:

Використання Last-Modified
// Відповідь містить Last-Modified
Last-Modified: Wed, 21 Mar 2026 10:15:30 GMT
// Клієнт перевіряє з If-Modified-Since
If-Modified-Since: Wed, 21 Mar 2026 10:15:30 GMT
// Якщо не змінено, сервер відповідає 304 Not Modified
HTTP/1.1 304 Not Modified

Заголовок Vary

Повідомляє кешам, які заголовки запитів впливають на відповідь (автентифікація, параметри):

Заголовок Vary
// Відповідь залежить від автентифікації та символів
Vary: Authorization, X-Symbols
// Кеші зберігають окремі версії для різних значень

ETag та умовні запити

ETags (Entity Tags) забезпечують ефективний спосіб перевірки кешованого контенту без завантаження повного тіла відповіді.

Як працюють ETags

  1. Початковий запит — Клієнт запитує дані, сервер відповідає з ETag
  2. Зберігання в кеші — Клієнт кешує відповідь разом з ETag
  3. Наступний запит — Клієнт надсилає заголовок If-None-Match із збереженим ETag
  4. Валідація — Якщо дані не змінилися, сервер повертає 304 Not Modified
  5. Збережено пропускну здатність — Тіло відповіді не надсилається, що значно зменшує використання пропускної здатності

Реалізація ETag

Початковий запит та відповідь
// Перший запит
GET /v1/whales/btc HTTP/1.1
// Відповідь включає ETag
HTTP/1.1 200 OK
ETag: "8a3b9c2d"
Cache-Control: public, max-age=300
Content-Type: application/json
{...response body...}
Умовна перевірка
// Після закінчення терміну дії кешу, надсилається If-None-Match
GET /v1/whales/btc HTTP/1.1
If-None-Match: "8a3b9c2d"
// Якщо дані не змінилися, сервер повертає 304
HTTP/1.1 304 Not Modified
ETag: "8a3b9c2d"
Cache-Control: public, max-age=300
// Тіло відповіді не надсилається! Пропускна здатність збережена

Сила ETag

ETags можуть бути сильними або слабкими:

Тип Формат Випадок використання
Сильний ETag "8a3b9c2d" Байт-в-байт ідентичний, використовується для валідації
Слабкий ETag W/"8a3b9c2d" Семантично еквівалентний, для відображення змін

Директиви Cache Control

Розуміння директив Cache-Control дозволяє створювати оптимальні стратегії кешування для вашого додатку.

Довідник директив

Директива Значення Приклад
max-age Секунди, протягом яких відповідь залишається свіжою max-age=300
public Кеш може зберігатися та ділитися public
private Кеш лише для отримувача private
must-revalidate Перевіряти, коли застаріла must-revalidate
no-cache Потрібно перевірити перед використанням no-cache
no-store Не кешувати взагалі no-store
immutable Ніколи не змінюється, кешувати назавжди immutable
s-maxage Тривалість кешування CDN s-maxage=3600

Практичні шаблони Cache-Control

Поширені шаблони
// Шаблон 1: Кеш браузера, CDN на 1 годину
Cache-Control: public, max-age=300, s-maxage=3600
// Шаблон 2: Дані для кожного користувача, без кешування проксі
Cache-Control: private, max-age=1800
// Шаблон 3: Завжди свіжі дані, завжди перевіряти
Cache-Control: public, no-cache, must-revalidate
// Шаблон 4: Незмінний версійний ресурс
Cache-Control: public, max-age=31536000, immutable

Інтеграція з CDN

Smart Money API доставляє відповіді через глобальну мережу CDN Cloudflare, автоматично кешуючи відповіді на краях світу для мінімальної затримки.

Як працює Smart Money CDN

  1. Запит користувача — Запит потрапляє до найближчого краю Cloudflare
  2. Перевірка кешу — Край перевіряє, чи відповідь кешована та свіжа
  3. Попадання в кеш — Якщо кешована, відповідь надається негайно з затримкою <10 мс
  4. Промах кешу — Якщо не кешована, дані отримуються з оригінального сервера
  5. Зберігання та надання — Відповідь кешується та доставляється користувачу

Конфігурація ключа кешу

Cloudflare використовує ключі кешу для унікальної ідентифікації кешованих відповідей. За замовчуванням:

  • Шлях запиту та параметри запиту включені
  • Більшість заголовків ігноруються (для максимізації попадань у кеш)
  • Заголовки авторизації НЕ включені (немає витоку облікових даних)
  • Користувацькі заголовки можуть бути включені через заголовок Vary

Очищення CDN

Smart Money автоматично очищує кеш CDN при оновленні даних:

Ручне очищення кешу
// Очистити конкретний URL з CDN
curl -X POST "https://api.smartmoneyapi.com/v1/cache/purge" \
-H "Authorization: Bearer token" \
-d '{
"urls": [
"https://api.smartmoneyapi.com/v1/whales/btc"
]
}'

Вимірювання продуктивності CDN

Перевірте заголовки відповіді, щоб дізнатися, чи був запит обслужений з кешу:

Заголовки відповіді
// Попадання в кеш з краю CDN
CF-Cache-Status: HIT
CF-RAY: 8a9b7c6d5e4f3g2h
Age: 45 // секунд з моменту кешування
// Промах кешу, дані отримані з оригінального сервера
CF-Cache-Status: MISS
Age: 0

Кешування на стороні клієнта

Реалізуйте кешування у вашому додатку, щоб ще більше зменшити кількість викликів API та покращити швидкодію.

Реалізація кешування в браузері

Кешування на JavaScript
// Створення сховища кешу
const cache = new Map();
async function fetchWithCache(url) {
// Спочатку перевірити кеш
const cached = cache.get(url);
if (cached && !isCacheExpired(cached)) {
return cached.data;
}
// Отримати з API
const response = await fetch(url);
const data = await response.json();
// Парсинг тривалості кешування з заголовків
const cacheControl = response.headers
.get('cache-control');
const maxAge = parseMaxAge(cacheControl);
// Зберегти в кеші
cache.set(url, {
data,
expiry: Date.now() + (maxAge * 1000)
});
return data;
}

Кешування Service Worker

Для підтримки офлайн-режиму та розширених стратегій кешування використовуйте Service Workers:

Service Worker
// Кешування відповідей API за допомогою Service Worker
self.addEventListener('fetch', (event) => {
if (event.request.url.includes('api.smartmoneyapi.com')) {
// Спочатку мережа, потім кеш
event.respondWith(
fetch(event.request)
.then(response => {
// Оновити кеш свіжою відповіддю
caches.open('api-cache')
.then(cache => cache.put(
event.request, response.clone()));
return response;
})
.catch(() =>
caches.match(event.request))
);
}
});

Стратегії оновлення кешу

Іноді потрібно змусити клієнтів отримувати свіжі дані. Використовуйте такі методи:

Параметр версії

Додайте параметр версії, щоб інвалідувати кеш при зміні даних:

Версійні URL
// Включити версію даних або часову мітку
https://api.smartmoneyapi.com/v1/whales/btc?v=1709980800
// При оновленні даних збільште версію
https://api.smartmoneyapi.com/v1/whales/btc?v=1709981000
// Новий URL = новий запис у кеші

Примусове оновлення

Перевизначте кеш за допомогою Cache-Control: no-cache, коли потрібні свіжі дані:

Примусове отримання свіжих даних
// JavaScript: Примусовий новий запит
fetch(url, {
cache: 'no-cache', // Завжди ревалідувати
headers: {
'Cache-Control': 'max-age=0'
}
});

Моніторинг продуктивності кешу

Відстежуйте частоту попадань у кеш та покращення продуктивності, щоб перевірити свою стратегію кешування.

Метрики кешу для моніторингу

  • Частота попадань — Відсоток запитів, обслужених з кешу (ціль: >70%)
  • Час відповіді — Середня затримка (кешована: <50мс, некешована: 100-300мс)
  • Збережена пропускна здатність — Зменшення обсягу переданих даних
  • Навантаження на джерело — Зменшення запитів до сервера джерела

Аналіз заголовків кешу

Скрипт аналізу кешу
// Аналіз заголовків кешу відповіді
async function analyzeCache(url) {
const response = await fetch(url);
return {
cacheControl: response.headers
.get('cache-control'),
etag: response.headers.get('etag'),
age: response.headers.get('age'),
cfStatus: response.headers
.get('cf-cache-status'),
contentLength:
response.headers.get('content-length')
};
}

Найкращі практики кешування

1. Поважайте заголовки відповідей

Завжди поважайте заголовки Cache-Control від Smart Money API. Не кешуйте вміст, позначений як no-store або no-cache.

2. Реалізуйте умовні запити

Надсилайте заголовки If-None-Match (ETag) та If-Modified-Since при ревалідації кешованого вмісту. Зберігайте пропускну здатність за допомогою відповідей 304.

3. Кешуйте відповідно до типу даних

  • Дані в реальному часі (ставки фінансування): максимальний кеш 1-5 секунд
  • Живі сигнали (рух китів): кеш 5-30 секунд
  • Щогодинні дані (OHLCV): кеш 1 година
  • Історичні дані: кеш 24 години
  • Статичний вміст: кеш 7 днів

4. Відстежуйте ефективність кешу

Відстежуйте частоту попадань у кеш та покращення затримки. Коригуйте TTL на основі вимог до свіжості даних та продуктивності кешу.

5. Використовуйте заголовки Vary обережно

Заголовки Vary зменшують кількість попадань у кеш, створюючи окремі записи кешу. Використовуйте лише тоді, коли це необхідно для різних рівнів автентифікації або параметрів.

6. Кешуйте на кількох рівнях

Реалізуйте кешування на рівнях CDN, браузера та програми. Кожен рівень перехоплює запити перед зверненням до джерела.

Оптимізуйте продуктивність вашого API

Інфраструктура кешування Smart Money API забезпечує відповіді менше 100 мс у глобальному масштабі. Реалізуйте розумні стратегії кешування, щоб максимізувати продуктивність і мінімізувати витрати.

Порівняйте плани
Усі плани включають повне кешування CDN. Вищі рівні надають контроль кешу та API очищення.

Пов’язані ресурси

Почніть безкоштовно — 100 викликів/день, без картки

Отримуйте живий потік китів, фінансування, відкритий інтерес та дані on-chain з 3 бірж з одного API. Безкоштовний рівень, без кредитної картки, оновлюйте будь-коли.

Почніть безкоштовно →
Спробуйте консоль API в реальному часі → (обліковий запис не потрібен)