Guida alla memorizzazione nella cache delle risposte e all'integrazione CDN

Ottimizza le prestazioni di Smart Money API con strategie di caching intelligenti. Scopri le intestazioni HTTP della cache, la validazione ETag, l'integrazione CDN e i modelli di caching lato client per ridurre la latenza e i costi di banda.

Pubblicato il 21 marzo 2026 16 min di lettura Prestazioni

Panoramica sulla cache

Gli endpoint di Smart Money API forniscono dati di mercato sulle criptovalute che cambiano con frequenze diverse. Alcuni dati (indirizzi di whale, tassi di funding) si aggiornano ogni pochi secondi, mentre altri dati (analisi storiche, contenuti educativi) rimangono statici per ore. Il caching intelligente migliora notevolmente le prestazioni e riduce i costi.

Smart Money API implementa una strategia di caching a tre livelli:

  • Cache CDN Edge — Distribuzione globale dei contenuti con invalidazione automatica della cache
  • Cache del browser HTTP — Caching lato client utilizzando intestazioni HTTP standard
  • Cache dell'applicazione — Caching in memoria per dataset accessi frequentemente

Approfondimento sulle prestazioni: Le risposte memorizzate nella cache vengono servite 50-100 volte più velocemente rispetto alle richieste API nuove e consentono un notevole risparmio di banda. Un'integrazione correttamente memorizzata nella cache può ridurre il trasferimento dei dati del 70-85%.

Ogni risposta di Smart Money API include direttive di cache che indicano ai client e ai CDN per quanto tempo i dati rimangono validi. Comprendere queste direttive e implementarle correttamente è fondamentale per prestazioni ottimali.

Fondamenti del caching

Il caching HTTP opera in base alle intestazioni di risposta che indicano se il contenuto può essere memorizzato nella cache e per quanto tempo.

Intestazione Cache-Control

Il meccanismo principale per controllare il comportamento della cache. Ogni risposta di Smart Money API include un'intestazione Cache-Control che specifica:

  • max-age — Durata in secondi per cui la risposta rimane valida
  • public/private — Se le cache intermedie possono memorizzarla
  • must-revalidate — Se verificare la freschezza prima di servire
  • no-store — Non memorizzare dati sensibili

Esempi di intestazioni di cache

Diversi endpoint hanno requisiti di cache diversi:

Intestazioni di risposta
// Dati sugli indirizzi delle whale (aggiornati ogni 5 minuti)
Cache-Control: public, max-age=300
ETag: "abc123def456"
// Tassi di funding in tempo reale (aggiornati ogni secondo)
Cache-Control: public, max-age=1
ETag: "xyz789abc123"
// Dati storici (non cambiano)
Cache-Control: public, max-age=86400, immutable
ETag: "static-content-v1"

Durata della cache per tipo di endpoint

Tipo di dati Durata della cache Caso d'uso
Funding in tempo reale 1-5 secondi Trading live, dimensionamento delle posizioni
Movimenti delle whale 5 minuti Conferma dei segnali, avvisi
OHLCV giornaliero 1 ora Analisi tecnica, grafici
Analisi storica 24 ore Backtesting, ricerca
Contenuti statici 7 giorni Documentazione API, guide, configurazione
Ottieni la tua chiave API in 30 secondi

Pronto a costruire? Ottieni una chiave API gratuita (200 chiamate/giorno, nessuna carta) e inizia a recuperare dati live su whale, funding e on-chain.

Ottieni la tua chiave API →

Intestazioni HTTP della cache

Le risposte di Smart Money API includono diverse intestazioni relative alla cache che lavorano insieme per massimizzare le prestazioni mantenendo la freschezza dei dati.

Cache-Control: L'intestazione principale

Controlla il comportamento della cache per browser e cache intermedie:

Direttive Cache-Control
// Dati pubblici, cache per 5 minuti
Cache-Control: public, max-age=300
// Dati privati, cache solo nel browser
Cache-Control: private, max-age=3600
// Contenuti immutabili, cache per sempre
Cache-Control: public, max-age=31536000, immutable
// Ricontrolla sempre prima di servire
Cache-Control: public, max-age=0, must-revalidate
// Non memorizzare dati sensibili
Cache-Control: private, no-store, no-cache

Intestazione Expires (legacy)

Per i client più vecchi, Smart Money fornisce anche l'intestazione Expires (HTTP/1.0):

Intestazione Expires
// Tempo di scadenza assoluto
Expires: Wed, 22 Mar 2026 14:30:00 GMT
// max-age di Cache-Control ha la precedenza in HTTP/1.1

Intestazione Last-Modified

Indica quando il contenuto è stato aggiornato l'ultima volta, abilitando richieste condizionali:

Utilizzo di Last-Modified
// La risposta include Last-Modified
Last-Modified: Wed, 21 Mar 2026 10:15:30 GMT
// Il client riconvalida con If-Modified-Since
If-Modified-Since: Wed, 21 Mar 2026 10:15:30 GMT
// Se invariato, il server risponde con 304 Not Modified
HTTP/1.1 304 Not Modified

Intestazione Vary

Indica alle cache quali intestazioni di richiesta influenzano la risposta (autenticazione, parametri):

Intestazione Vary
// La risposta varia in base ad autenticazione e simboli
Vary: Authorization, X-Symbols
// Le cache memorizzano versioni separate per valori diversi

ETag e richieste condizionali

Gli ETag (Entity Tags) forniscono un modo efficiente per convalidare il contenuto memorizzato nella cache senza scaricare l'intero corpo della risposta.

Come funzionano gli ETag

  1. Richiesta iniziale — Il client richiede dati, il server risponde con ETag
  2. Memorizzazione nella cache — Il client memorizza la risposta con ETag
  3. Richiesta successiva — Il client invia l'header If-None-Match con l'ETag memorizzato
  4. Validazione — Se i dati non sono cambiati, il server restituisce 304 Not Modified
  5. Larghezza di banda risparmiata — Nessun corpo della risposta inviato, enorme risparmio di larghezza di banda

Implementazione ETag

Richiesta e risposta iniziale
// Prima richiesta
GET /v1/whales/btc HTTP/1.1
// La risposta include l'ETag
HTTP/1.1 200 OK
ETag: "8a3b9c2d"
Cache-Control: public, max-age=300
Content-Type: application/json
{...corpo della risposta...}
Rivalidazione condizionale
// Dopo la scadenza della cache, invia If-None-Match
GET /v1/whales/btc HTTP/1.1
If-None-Match: "8a3b9c2d"
// Se non modificato, il server risponde con 304
HTTP/1.1 304 Not Modified
ETag: "8a3b9c2d"
Cache-Control: public, max-age=300
// Nessun corpo inviato! Larghezza di banda risparmiata

Forza dell'ETag

Gli ETag possono essere forti o deboli:

Tipo Formato Caso d'uso
ETag forte "8a3b9c2d" Identico byte per byte, utilizzato per la validazione
ETag debole W/"8a3b9c2d" Equivalente semanticamente, per cambiamenti di visualizzazione

Direttive di controllo della cache

Comprendere le direttive Cache-Control consente di costruire strategie di caching ottimali per la tua applicazione.

Riferimento delle direttive

Direttiva Significato Esempio
max-age Secondi in cui la risposta rimane fresca max-age=300
public La cache può memorizzare e condividere public
private Cache solo per il destinatario private
must-revalidate Rivalida quando obsoleto must-revalidate
no-cache Deve rivalidare prima dell'uso no-cache
no-store Non memorizzare affatto no-store
immutable Non cambia mai, cache per sempre immutable
s-maxage Durata della cache CDN s-maxage=3600

Modelli pratici di Cache-Control

Modelli comuni
// Modello 1: Cache del browser, CDN per 1 ora
Cache-Control: public, max-age=300, s-maxage=3600
// Modello 2: Dati per utente, nessuna cache proxy
Cache-Control: private, max-age=1800
// Modello 3: Sempre fresco, sempre verifica
Cache-Control: public, no-cache, must-revalidate
// Modello 4: Asset versionato immutabile
Cache-Control: public, max-age=31536000, immutable

Integrazione CDN

Smart Money API consegna le risposte attraverso la rete CDN globale di Cloudflare, memorizzando automaticamente le risposte in sedi periferiche in tutto il mondo per una latenza minima.

Come funziona Smart Money CDN

  1. Richiesta dell'utente — La richiesta raggiunge la sede periferica Cloudflare più vicina
  2. Controllo della cache — La sede periferica verifica se la risposta è memorizzata nella cache e fresca
  3. Cache Hit — Se memorizzato nella cache, serve immediatamente con una latenza <10ms
  4. Cache Miss — Se non memorizzato nella cache, recupera dal server di origine
  5. Memorizza e serve — Memorizza la risposta nella cache e la consegna all'utente

Configurazione della chiave di cache

Cloudflare utilizza chiavi di cache per identificare in modo univoco le risposte memorizzate nella cache. Per impostazione predefinita:

  • Il percorso della richiesta e i parametri di query sono inclusi
  • La maggior parte degli header viene ignorata (per massimizzare i cache hit)
  • Gli header di autorizzazione NON sono inclusi (nessuna perdita di account)
  • Gli header personalizzati possono essere inclusi tramite l'header Vary

Pulizia della cache CDN

Smart Money purga automaticamente la cache CDN quando i dati vengono aggiornati:

Pulizia manuale della cache
// Pulisci un URL specifico dalla CDN
curl -X POST "https://api.smartmoneyapi.com/v1/cache/purge" \
-H "Authorization: Bearer token" \
-d '{
"urls": [
"https://api.smartmoneyapi.com/v1/whales/btc"
]
}'

Misurazione delle prestazioni CDN

Controlla gli header della risposta per vedere se la richiesta è stata servita dalla cache:

Header della risposta
// Cache hit dalla sede periferica CDN
CF-Cache-Status: HIT
CF-RAY: 8a9b7c6d5e4f3g2h
Age: 45 // secondi dalla memorizzazione nella cache
// Cache miss, recuperato dal server di origine
CF-Cache-Status: MISS
Age: 0

Caching lato client

Implementa il caching nella tua applicazione per ridurre ulteriormente le chiamate API e migliorare la reattività.

Implementazione della cache del browser

Caching JavaScript
// Crea lo storage della cache
const cache = new Map();
async function fetchWithCache(url) {
// Controlla prima la cache
const cached = cache.get(url);
if (cached && !isCacheExpired(cached)) {
return cached.data;
}
// Recupera dall'API
const response = await fetch(url);
const data = await response.json();
// Analizza la durata della cache dagli header
const cacheControl = response.headers
.get('cache-control');
const maxAge = parseMaxAge(cacheControl);
// Memorizza nella cache
cache.set(url, {
data,
expiry: Date.now() + (maxAge * 1000)
});
return data;
}

Service Worker Caching

Per supporto offline e strategie di caching avanzate, utilizza i Service Worker:

Service Worker
// Memorizza le risposte dell'API con il Service Worker
self.addEventListener('fetch', (event) => {
if (event.request.url.includes('api.smartmoneyapi.com')) {
// Prima la rete, poi la cache come fallback
event.respondWith(
fetch(event.request)
.then(response => {
// Aggiorna la cache con la risposta fresca
caches.open('api-cache')
.then(cache => cache.put(
event.request, response.clone()));
return response;
})
.catch(() =>
caches.match(event.request))
);
}
});

Strategie di Cache Busting

A volte è necessario forzare i client a ottenere dati freschi. Utilizza queste tecniche:

Parametro di Versione

Aggiungi un parametro di versione per invalidare le cache quando i dati cambiano:

URL Versionati
// Includi la versione dei dati o un timestamp
https://api.smartmoneyapi.com/v1/whales/btc?v=1709980800
// Quando i dati vengono aggiornati, incrementa la versione
https://api.smartmoneyapi.com/v1/whales/btc?v=1709981000
// Nuovo URL = nuova voce nella cache

Forza la Rivalidazione

Sovrascrivi la cache con Cache-Control: no-cache quando hai bisogno di dati freschi:

Forza Dati Freschi
// JavaScript: Forza una richiesta fresca
fetch(url, {
cache: 'no-cache', // Rivalida sempre
headers: {
'Cache-Control': 'max-age=0'
}
});

Monitoraggio delle Prestazioni della Cache

Monitora i tassi di hit della cache e i miglioramenti delle prestazioni per validare la tua strategia di caching.

Metriche della Cache da Monitorare

  • Tasso di Hit — Percentuale di richieste servite dalla cache (obiettivo: >70%)
  • Tempo di Risposta — Latenza media (cache: <50ms, non in cache: 100-300ms)
  • Larghezza di Banda Risparmiata — Riduzione del trasferimento dati
  • Carico dell'Origine — Riduzione delle richieste al server di origine

Analisi degli Header della Cache

Script di Analisi della Cache
// Analizza gli header della cache della risposta
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')
};
}

Migliori Pratiche per il Caching

1. Rispetta gli Header di Risposta

Rispetta sempre gli header Cache-Control da Smart Money API. Non memorizzare nella cache contenuti contrassegnati come no-store o no-cache.

2. Implementa Richieste Condizionali

Invia gli header If-None-Match (ETag) e If-Modified-Since quando rivalidi il contenuto in cache. Risparmia larghezza di banda con risposte 304.

3. Memorizza nella Cache in Modo Appropriato per Tipo di Dati

  • Dati in tempo reale (tassi di funding): cache massima di 1-5 secondi
  • Segnali live (movimenti delle balene): cache di 5-30 secondi
  • Dati orari (OHLCV): cache di 1 ora
  • Dati storici: cache di 24 ore
  • Contenuti statici: cache di 7 giorni

4. Monitora l'Efficacia della Cache

Monitora i tassi di hit e i miglioramenti della latenza. Regola i TTL in base ai requisiti di freschezza dei dati e alle prestazioni della cache.

5. Usa gli Header Vary con Cautela

Gli header Vary riducono gli hit della cache creando voci di cache separate. Usali solo quando necessario per diversi livelli di autenticazione o parametri.

6. Memorizza nella Cache a Livelli Multipli

Implementa la cache a livello di CDN, browser e applicazione. Ogni livello intercetta le richieste prima che raggiungano l'origine.

Ottimizza le Prestazioni della tua API

L'infrastruttura di caching di Smart Money API garantisce risposte inferiori a 100ms su scala globale. Implementa strategie di caching intelligenti per massimizzare le prestazioni e minimizzare i costi.

Confronta i Piani
Tutti i piani includono la cache CDN completa. I livelli superiori offrono il controllo della cache e le API di purging.

Risorse Correlate

Inizia gratis — 200 chiamate/giorno, nessuna carta

Ottieni dati live sul flusso delle balene, funding, open interest e on-chain su 3 exchange da un'unica API. Piano gratuito, nessuna carta di credito, aggiornamento in qualsiasi momento.

Inizia gratis →
Prova la console API live → (nessun account necessario)