Guia de Cache de Resposta e Integração com CDN

Otimize o desempenho da Smart Money API com estratégias inteligentes de cache. Aprenda sobre cabeçalhos de cache HTTP, validação ETag, integração com CDN e padrões de cache no lado do cliente para reduzir latência e custos de banda.

Publicado em 21 de março de 2026 16 min de leitura Desempenho

Visão Geral do Cache

Os endpoints da Smart Money API fornecem dados de mercado de criptomoedas que mudam em diferentes frequências. Alguns dados (endereços de baleias, taxas de funding) atualizam a cada poucos segundos, enquanto outros dados (análise histórica, conteúdo educacional) permanecem estáticos por horas. O cache inteligente melhora drasticamente o desempenho e reduz custos.

A Smart Money API implementa uma estratégia de cache de três camadas:

  • Cache de Borda CDN — Entrega global de conteúdo com invalidação automática de cache
  • Cache HTTP do Navegador — Cache no lado do cliente usando cabeçalhos HTTP padrão
  • Cache da Aplicação — Cache em memória para conjuntos de dados acessados frequentemente

Insight de Desempenho: Respostas em cache são servidas 50-100x mais rápido do que solicitações de API novas e economizam largura de banda significativamente. Uma integração corretamente armazenada em cache pode reduzir a transferência de dados em 70-85%.

Cada resposta da Smart Money API inclui diretivas de cache que informam aos clientes e CDNs por quanto tempo os dados permanecem válidos. Entender essas diretivas e implementá-las corretamente é crucial para um desempenho ideal.

Fundamentos de Cache

O cache HTTP opera com base em cabeçalhos de resposta que indicam se o conteúdo pode ser armazenado em cache e por quanto tempo.

Cabeçalho Cache-Control

O mecanismo principal para controlar o comportamento do cache. Cada resposta da Smart Money API inclui um cabeçalho Cache-Control especificando:

  • max-age — Duração em segundos que a resposta permanece válida
  • public/private — Se caches intermediários podem armazená-la
  • must-revalidate — Se deve verificar a atualização antes de servir
  • no-store — Não armazenar dados sensíveis em cache

Exemplo de Cabeçalhos de Cache

Diferentes endpoints têm requisitos de cache diferentes:

Cabeçalhos de Resposta
// Dados de endereços de baleias (atualiza a cada 5 minutos)
Cache-Control: public, max-age=300
ETag: "abc123def456"
// Taxas de funding em tempo real (atualiza a cada segundo)
Cache-Control: public, max-age=1
ETag: "xyz789abc123"
// Dados históricos (não mudam)
Cache-Control: public, max-age=86400, immutable
ETag: "static-content-v1"

Duração do Cache por Tipo de Endpoint

Tipo de Dado Duração do Cache Caso de Uso
Funding em Tempo Real 1-5 segundos Negociação ao vivo, dimensionamento de posição
Movimentações de Baleias 5 minutos Confirmação de sinal, alertas
OHLCV Diário 1 hora Análise técnica, gráficos
Análise Histórica 24 horas Backtesting, pesquisa
Conteúdo Estático 7 dias Documentação da API, guias, configuração
Obtenha sua chave de API em 30 segundos

Pronto para construir? Obtenha uma chave de API gratuita (200 chamadas/dia, sem cartão) e comece a extrair dados ao vivo de baleias, funding e on-chain.

Obtenha sua chave de API →

Cabeçalhos de Cache HTTP

As respostas da Smart Money API incluem vários cabeçalhos relacionados ao cache que trabalham juntos para maximizar o desempenho mantendo a atualização dos dados.

Cache-Control: O Cabeçalho Principal

Controla o comportamento do cache para navegadores e caches intermediários:

Diretivas Cache-Control
// Dados públicos, cache por 5 minutos
Cache-Control: public, max-age=300
// Dados privados, cache apenas no navegador
Cache-Control: private, max-age=3600
// Conteúdo imutável, cache para sempre
Cache-Control: public, max-age=31536000, immutable
// Sempre revalidar antes de servir
Cache-Control: public, max-age=0, must-revalidate
// Não armazenar dados sensíveis em cache
Cache-Control: private, no-store, no-cache

Cabeçalho Expires (Legado)

Para clientes mais antigos, a Smart Money também fornece o cabeçalho Expires (HTTP/1.0):

Cabeçalho Expires
// Tempo de expiração absoluto
Expires: Wed, 22 Mar 2026 14:30:00 GMT
// O max-age do Cache-Control tem precedência no HTTP/1.1

Cabeçalho Last-Modified

Indica quando o conteúdo foi atualizado pela última vez, permitindo solicitações condicionais:

Uso do Last-Modified
// Resposta inclui Last-Modified
Last-Modified: Wed, 21 Mar 2026 10:15:30 GMT
// Cliente revalida com If-Modified-Since
If-Modified-Since: Wed, 21 Mar 2026 10:15:30 GMT
// Se não modificado, o servidor responde 304 Not Modified
HTTP/1.1 304 Not Modified

Cabeçalho Vary

Informa aos caches quais cabeçalhos de solicitação afetam a resposta (autenticação, parâmetros):

Cabeçalho Vary
// A resposta varia por autenticação e símbolos
Vary: Authorization, X-Symbols
// Os caches armazenam versões separadas para diferentes valores

ETag e Solicitações Condicionais

ETags (Entity Tags) fornecem uma maneira eficiente de validar conteúdo em cache sem baixar o corpo completo da resposta.

Como as ETags Funcionam

  1. Solicitação Inicial — O cliente solicita dados, o servidor responde com ETag
  2. Armazenamento em Cache — O cliente armazena a resposta com ETag
  3. Solicitação Subsequente — O cliente envia o cabeçalho If-None-Match com o ETag em cache
  4. Validação — Se os dados não foram alterados, o servidor retorna 304 Not Modified
  5. Largura de Banda Economizada — Nenhum corpo de resposta enviado, grande economia de largura de banda

Implementação de ETag

Requisição e Resposta Inicial
// Primeira requisição
GET /v1/whales/btc HTTP/1.1
// A resposta inclui ETag
HTTP/1.1 200 OK
ETag: "8a3b9c2d"
Cache-Control: public, max-age=300
Content-Type: application/json
{...corpo da resposta...}
Revalidação Condicional
// Após o cache expirar, envie If-None-Match
GET /v1/whales/btc HTTP/1.1
If-None-Match: "8a3b9c2d"
// Se não houver alterações, o servidor responde com 304
HTTP/1.1 304 Not Modified
ETag: "8a3b9c2d"
Cache-Control: public, max-age=300
// Nenhum corpo enviado! Largura de banda economizada

Força do ETag

ETags podem ser fortes ou fracos:

Tipo Formato Caso de Uso
ETag Forte "8a3b9c2d" Idêntico byte por byte, usado para validação
ETag Fraco W/"8a3b9c2d" Equivalentes semanticamente, para mudanças de exibição

Diretivas de Controle de Cache

Entender as diretivas Cache-Control permite construir estratégias de cache ideais para sua aplicação.

Referência de Diretivas

Diretiva Significado Exemplo
max-age Segundos que a resposta permanece fresca max-age=300
public Cache pode armazenar e compartilhar public
private Cache apenas para o destinatário private
must-revalidate Revalidar quando obsoleto must-revalidate
no-cache Deve revalidar antes de usar no-cache
no-store Não armazenar em cache no-store
immutable Nunca muda, cache para sempre immutable
s-maxage Duração do cache na CDN s-maxage=3600

Padrões Práticos de Cache-Control

Padrões Comuns
// Padrão 1: Cache do navegador, CDN por 1 hora
Cache-Control: public, max-age=300, s-maxage=3600
// Padrão 2: Dados por usuário, sem cache de proxy
Cache-Control: private, max-age=1800
// Padrão 3: Sempre fresco, sempre verificar
Cache-Control: public, no-cache, must-revalidate
// Padrão 4: Ativo versionado imutável
Cache-Control: public, max-age=31536000, immutable

Integração com CDN

A Smart Money API entrega respostas através da rede global de CDN da Cloudflare, armazenando automaticamente respostas em locais de borda em todo o mundo para latência mínima.

Como Funciona a CDN da Smart Money

  1. Requisição do Usuário — A requisição chega ao local de borda mais próximo da Cloudflare
  2. Verificação de Cache — A borda verifica se a resposta está em cache e está fresca
  3. Acerto de Cache — Se estiver em cache, serve imediatamente com latência <10ms
  4. Erro de Cache — Se não estiver em cache, busca no servidor de origem
  5. Armazenar e Servir — Armazena a resposta em cache e entrega ao usuário

Configuração de Chave de Cache

A Cloudflare usa chaves de cache para identificar exclusivamente respostas em cache. Por padrão:

  • O caminho da requisição e os parâmetros de consulta são incluídos
  • A maioria dos cabeçalhos é ignorada (para maximizar acertos de cache)
  • Cabeçalhos de autorização NÃO são incluídos (sem vazamento de conta)
  • Cabeçalhos personalizados podem ser incluídos via cabeçalho Vary

Limpeza de CDN

A Smart Money limpa automaticamente o cache da CDN quando os dados são atualizados:

Limpeza Manual de Cache
// Limpa URL específica da CDN
curl -X POST "https://api.smartmoneyapi.com/v1/cache/purge" \
-H "Authorization: Bearer token" \
-d '{
"urls": [
"https://api.smartmoneyapi.com/v1/whales/btc"
]
}'

Medindo o Desempenho da CDN

Verifique os cabeçalhos de resposta para ver se a requisição foi servida do cache:

Cabeçalhos de Resposta
// Acerto de cache da borda da CDN
CF-Cache-Status: HIT
CF-RAY: 8a9b7c6d5e4f3g2h
Age: 45 // segundos desde o cache
// Erro de cache, buscado do servidor de origem
CF-Cache-Status: MISS
Age: 0

Cache do Lado do Cliente

Implemente cache em sua aplicação para reduzir ainda mais as chamadas à API e melhorar a responsividade.

Implementação de Cache no Navegador

Cache em JavaScript
// Criar armazenamento de cache
const cache = new Map();
async function fetchWithCache(url) {
// Verificar cache primeiro
const cached = cache.get(url);
if (cached && !isCacheExpired(cached)) {
return cached.data;
}
// Buscar da API
const response = await fetch(url);
const data = await response.json();
// Analisar duração do cache dos cabeçalhos
const cacheControl = response.headers
.get('cache-control');
const maxAge = parseMaxAge(cacheControl);
// Armazenar em cache
cache.set(url, {
data,
expiry: Date.now() + (maxAge * 1000)
});
return data;
}

Cache de Service Worker

Para suporte offline e estratégias avançadas de cache, use Service Workers:

Service Worker
// Cache de respostas da API com Service Worker
self.addEventListener('fetch', (event) => {
if (event.request.url.includes('api.smartmoneyapi.com')) {
Rede primeiro, depois cache
event.respondWith(
fetch(event.request)
.then(response => {
// Atualizar cache com resposta recente
caches.open('api-cache')
.then(cache => cache.put(
event.request, response.clone()));
return response;
})
.catch(() =>
caches.match(event.request))
);
}
});

Estratégias de Cache Busting

Às vezes, é necessário forçar os clientes a obter dados atualizados. Use estas técnicas:

Parâmetro de Versão

Adicione um parâmetro de versão para invalidar caches quando os dados mudarem:

URLs Versionadas
// Inclua versão dos dados ou timestamp
https://api.smartmoneyapi.com/v1/whales/btc?v=1709980800
// Quando os dados atualizarem, incremente a versão
https://api.smartmoneyapi.com/v1/whales/btc?v=1709981000
// Nova URL = nova entrada no cache

Forçar Revalidação

Substitua o cache com Cache-Control: no-cache quando precisar de dados atualizados:

Forçar Dados Atualizados
// JavaScript: Forçar requisição atualizada
fetch(url, {
cache: 'no-cache', // Sempre revalidar
headers: {
'Cache-Control': 'max-age=0'
}
});

Monitoramento de Desempenho do Cache

Acompanhe taxas de acerto e melhorias de desempenho para validar sua estratégia de cache.

Métricas de Cache para Monitorar

  • Taxa de Acerto — Porcentagem de requisições atendidas pelo cache (objetivo: >70%)
  • Tempo de Resposta — Latência média (cache: <50ms, sem cache: 100-300ms)
  • Largura de Banda Economizada — Redução na transferência de dados
  • Carga na Origem — Redução de requisições no servidor de origem

Análise de Cabeçalhos de Cache

Script de Análise de Cache
// Analisar cabeçalhos de cache da resposta
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')
};
}

Melhores Práticas de Cache

1. Respeitar Cabeçalhos de Resposta

Sempre respeite os cabeçalhos Cache-Control da Smart Money API. Não armazene em cache conteúdo marcado como no-store ou no-cache.

2. Implementar Requisições Condicionais

Envie cabeçalhos If-None-Match (ETag) e If-Modified-Since ao revalidar conteúdo em cache. Economize largura de banda com respostas 304.

3. Armazenar em Cache de Acordo com o Tipo de Dado

  • Dados em tempo real (taxas de funding): cache máximo de 1-5 segundos
  • Sinais ao vivo (movimento de baleias): cache de 5-30 segundos
  • Dados horários (OHLCV): cache de 1 hora
  • Dados históricos: cache de 24 horas
  • Conteúdo estático: cache de 7 dias

4. Monitorar Eficácia do Cache

Acompanhe taxas de acerto e melhorias de latência. Ajuste TTLs com base nos requisitos de atualização de dados e desempenho do cache.

5. Usar Cabeçalhos Vary com Cuidado

Cabeçalhos Vary reduzem acertos de cache ao criar entradas separadas. Use apenas quando necessário para diferentes níveis de autenticação ou parâmetros.

6. Armazenar em Cache em Múltiplas Camadas

Implemente cache em CDN, navegador e níveis de aplicação. Cada camada intercepta requisições antes de chegar à origem.

Otimize o Desempenho da Sua API

A infraestrutura de cache da Smart Money API garante respostas abaixo de 100ms em escala global. Implemente estratégias inteligentes de cache para maximizar desempenho e minimizar custos.

Comparar Planos
Todos os planos incluem cache completo em CDN. Planos superiores oferecem controle de cache e APIs de purga.

Recursos Relacionados

Comece grátis — 200 chamadas/dia, sem cartão

Obtenha dados de fluxo de baleias, funding, open interest e on-chain de 3 exchanges em uma API. Plano gratuito, sem cartão de crédito, atualize quando quiser.

Comece grátis →
Experimente o console da API ao vivo → (sem conta necessária)