HTTP - Cache

HTTP é normalmente usado para sistemas de informação distribuídos, onde o desempenho pode ser melhorado com o uso de caches de resposta. O protocolo HTTP / 1.1 inclui vários elementos destinados a fazer o cache funcionar.

O objetivo do armazenamento em cache em HTTP / 1.1 é eliminar a necessidade de enviar solicitações em muitos casos e eliminar a necessidade de enviar respostas completas em muitos outros casos.

Os mecanismos básicos de cache em HTTP / 1.1 são diretivas implícitas para caches em que o servidor especifica tempos de expiração e validadores. Nós usamos oCache-Control cabeçalho para esta finalidade.

o Cache-Controlcabeçalho permite que um cliente ou servidor transmita uma variedade de diretivas em solicitações ou respostas. Essas diretivas geralmente substituem os algoritmos de cache padrão. As diretivas de armazenamento em cache são especificadas em uma lista separada por vírgulas. Por exemplo:

Cache-control: no-cache

As seguintes diretivas de solicitação de cache podem ser usadas pelo cliente em sua solicitação HTTP:

SN Diretiva e descrição de solicitação de cache
1 no-cache

Um cache não deve usar a resposta para satisfazer uma solicitação subsequente sem revalidação bem-sucedida com o servidor de origem.

2 no-store

O cache não deve armazenar nada sobre a solicitação do cliente ou a resposta do servidor.

3 max-age = seconds

Indica que o cliente está disposto a aceitar uma resposta cuja idade não seja maior que o tempo especificado em segundos.

4 max-stale [ = seconds ]

Indica que o cliente está disposto a aceitar uma resposta que excedeu o tempo de expiração. Se segundos forem fornecidos, ele não deve expirar por mais do que esse tempo.

5 min-fresh = seconds

Indica que o cliente está disposto a aceitar uma resposta cujo tempo de vida de atualização não seja menor que a idade atual mais o tempo especificado em segundos.

6 no-transform

Não converte o corpo-entidade.

7 only-if-cached

Não recupera novos dados. O cache pode enviar um documento somente se estiver no cache e não deve contatar o servidor de origem para ver se existe uma cópia mais recente.

As seguintes diretivas de resposta de cache podem ser usadas pelo servidor em sua resposta HTTP:

SN Diretiva de resposta de cache e descrição
1 public

Indica que a resposta pode ser armazenada em cache por qualquer cache.

2 private

Indica que toda ou parte da mensagem de resposta é destinada a um único usuário e não deve ser armazenada em cache por um cache compartilhado.

3 no-cache

Um cache não deve usar a resposta para satisfazer uma solicitação subsequente sem uma revalidação bem-sucedida com o servidor de origem.

4 no-store

O cache não deve armazenar nada sobre a solicitação do cliente ou a resposta do servidor.

5 no-transform

Não converte o corpo-entidade.

6 must-revalidate

O cache deve verificar o status dos documentos obsoletos antes de usá-lo e os expirados não devem ser usados.

7 proxy-revalidate

A diretiva proxy-revalidate tem o mesmo significado que a diretiva must-revalidate, exceto que não se aplica a caches de agentes de usuário não compartilhados.

8 max-age = seconds

Indica que o cliente está disposto a aceitar uma resposta cuja idade não seja maior que o tempo especificado em segundos.

9 s-maxage = seconds

A idade máxima especificada por esta diretiva substitui a idade máxima especificada pela diretiva max-age ou pelo cabeçalho Expires. A diretiva s-maxage é sempre ignorada por um cache privado.