Como ignorar o cache do cloudflare como o reddit faz

3

Alguém sabe como o reddit consegue ignorar o armazenamento em cache estático do cloudflare uma vez que o usuário efetua login com êxito com uma recarga de página?

Eu vejo que a página atual é recarregada após um login bem-sucedido.

Cabeçalhos de resposta antes do login:

CF-Cache-Status: HIT
CF-RAY: 23b76b8270950e30-MXP
Cache-Control: max-age=0, must-revalidate
Content-Encoding: gzip
Content-Length: 20794
Content-Type: text/html; charset=UTF-8
Date: Mon, 26 Oct 2015 16:08:27 GMT
Server: cloudflare-nginx
Vary: Accept-Encoding
X-Firefox-Spdy: 3.1
X-Frame-Options: SAMEORIGIN
strict-transport-security: max-age=15552000; includeSubDomains; preload
x-content-type-options: nosniff
x-moose: majestic
x-ua-compatible: IE=edge
x-xss-protection: 1; mode=block

Cabeçalhos de resposta após o login:

CF-RAY: 23b76cb065140e30-MXP
Cache-Control: private, s-maxage=0, max-age=0, must-revalidate, max-age=0, must-revalidate
Content-Encoding: gzip
Content-Length: 18697
Content-Type: text/html; charset=UTF-8
Date: Mon, 26 Oct 2015 16:09:16 GMT
Expires: -1
Server: cloudflare-nginx
Vary: accept-encoding
X-Firefox-Spdy: 3.1
X-Frame-Options: SAMEORIGIN
strict-transport-security: max-age=15552000; includeSubDomains; preload
x-content-type-options: nosniff
x-moose: majestic
x-ua-compatible: IE=edge
x-xss-protection: 1; mode=block

Obrigado por qualquer sugestão.

    
por jithujose 26.10.2015 / 17:12

1 resposta

5

Existem duas maneiras principais de fazer isso com o CloudFlare:

  • No CloudFlare, você pode definir uma regra de página para evitar o armazenamento em cache de arquivos de sua escolha.
  • Você pode exibir cabeçalhos sem cache que o CloudFlare respeitará.

Para configurar uma regra de página

  1. Acesse seu painel do CloudFlare e selecione Regras da página
  2. Adicione uma regra de página que corresponda a * yourdomain.com / *. html
  3. Definir o nível de cache para ignorar
  4. Salvar e implantar

Definircabeçalhosdecache

ACentraldeAjudadaCloudFlareexplica como controlar o cache através dos cabeçalhos enviados a partir da origem :

The second way to alter what CloudFlare will cache is through caching headers sent from the origin. CloudFlare will respect these settings (but only for files with the extensions that we cache by default), unless a Page Rule is set to cache everything and an edge cache expires TTL is set. Here are the caching headers we consider:

  • If the Cache-Control header is set to "private", "no-store", "no-cache", or "max-age=0", or if there is a cookie in the response, then CloudFlare will not cache the resource.
  • Otherwise, if the Cache-Control header is set to "public" and the "max-age" is greater than 0, or if the Expires headers are set any time in the future, we will cache the resource.

Note: As per RFC rules, "Cache-Control: max-age" trumps "Expires" headers. If we see both and they do not agree, max-age wins.

No PHP você pode implementar isso usando a função de cabeçalho da seguinte forma:

header("Cache-Control: no-cache, must-revalidate");
    
por 10.05.2016 / 18:24

Tags