Armazenar conteúdo em cache com base em cookies - Amazon CloudFront

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Armazenar conteúdo em cache com base em cookies

Por padrão, CloudFront não considera cookies ao processar solicitações e respostas ou ao armazenar em cache seus objetos em pontos de presença. Se CloudFront receber duas solicitações idênticas, exceto pelo que está no Cookie cabeçalho, então, por padrão, CloudFront trata as solicitações como idênticas e retorna o mesmo objeto para ambas as solicitações.

Você pode configurar CloudFront para encaminhar para sua origem alguns ou todos os cookies nas solicitações do visualizador e armazenar em cache versões separadas de seus objetos com base nos valores de cookie que ele encaminha. Ao fazer isso, CloudFront usa alguns ou todos os cookies nas solicitações do visualizador, quaisquer que estejam configurados para encaminhar, para identificar com exclusividade um objeto no cache.

Por exemplo, imagine que as solicitações de locations.html contêm um cookie country com um valor de uk ou fr. Quando você configura CloudFront para armazenar seus objetos em cache com base no valor do country cookie, CloudFront encaminha as solicitações locations.html para a origem e inclui o country cookie e seu valor. Sua origem retorna locations.html e armazena em CloudFront cache o objeto uma vez para solicitações nas quais o valor do country cookie está uk e uma vez para solicitações nas quais o valor estáfr.

Importante

O Amazon S3 e alguns servidores HTTP não processam cookies. Não configure CloudFront para encaminhar cookies para uma origem que não processe cookies ou não varie sua resposta com base nos cookies. Isso pode CloudFront fazer com que mais solicitações sejam encaminhadas para a origem do mesmo objeto, o que diminui o desempenho e aumenta a carga na origem. Se, considerando o exemplo anterior, sua origem não processar o country cookie ou sempre retornar a mesma versão de locations.html to, CloudFront independentemente do valor do country cookie, não configure CloudFront para encaminhar esse cookie.

Por outro lado, se sua origem personalizada depender de um cookie específico ou enviar respostas diferentes com base em um cookie, certifique-se de configurar CloudFront para encaminhar esse cookie para a origem. Caso contrário, CloudFront remove o cookie antes de encaminhar a solicitação para sua origem.

Para configurar o encaminhamento de cookies, atualize o comportamento de cache da sua distribuição. Para obter mais informações sobre comportamentos de cache, consulte Configurações de comportamento de cache, especificamente as seções Cookies progressivos e Lista de permissões de cookies.

Você pode configurar cada comportamento de cache para realizar uma das seguintes ações:

  • Encaminhe todos os cookies para sua origem — CloudFront inclui todos os cookies enviados pelo visualizador quando ele encaminha solicitações para a origem. Quando sua origem retorna uma resposta, armazena em CloudFront cache a resposta usando os nomes e valores dos cookies na solicitação do visualizador. Se a resposta de origem incluir Set-Cookie cabeçalhos, os CloudFront retornará ao visualizador com o objeto solicitado. CloudFront também armazena em cache Set-Cookie os cabeçalhos com o objeto retornado da origem e os envia aos Set-Cookie visualizadores em todas as ocorrências do cache.

  • Encaminhe um conjunto de cookies que você especifica — CloudFront remove todos os cookies que o visualizador envia e que não estão na lista de permissões antes de encaminhar uma solicitação para a origem. CloudFront armazena em cache a resposta usando os nomes e valores de cookies listados na solicitação do visualizador. Se a resposta de origem incluir Set-Cookie cabeçalhos, os CloudFront retornará ao visualizador com o objeto solicitado. CloudFront também armazena em cache Set-Cookie os cabeçalhos com o objeto retornado da origem e os envia aos Set-Cookie visualizadores em todas as ocorrências do cache.

    Para obter informações sobre como especificar curingas em nomes de cookies, consulte Lista de permissões de cookies.

    Para saber a cota atual do número de nomes de cookies que você pode encaminhar para cada comportamento de cache ou para solicitar uma cota maior, consulte Cotas em cadeias de consulta (configurações de cache herdadas).

  • Não encaminhe cookies para sua origem — CloudFront não armazena em cache seus objetos com base no cookie enviado pelo visualizador. Além disso, o CloudFront remove os cookies antes de encaminhar as solicitações para a origem e remove os cabeçalhos Set-Cookie das respostas antes de retorná-las para os visualizadores.

Observações sobre como especificar os cookies que você deseja encaminhar:

Logs de acesso

Se você configurar CloudFront para registrar solicitações e cookies, CloudFront registrará todos os cookies e todos os atributos de cookies, mesmo se você configurar para CloudFront não encaminhar cookies para sua origem ou se configurar CloudFront para encaminhar somente cookies específicos. Para obter mais informações sobre CloudFront registro em log, consulteConfigurar e usar logs padrão (logs de acesso).

Diferenciação de letras maiúsculas e minúsculas

Os nomes e valores de cookie diferenciam letras maiúsculas e minúsculas. Por exemplo, se CloudFront estiver configurado para encaminhar todos os cookies e duas solicitações do visualizador para o mesmo objeto tiverem cookies idênticos, exceto por maiúsculas e minúsculas, CloudFront armazena o objeto em cache duas vezes.

CloudFront classifica cookies

Se CloudFront estiver configurado para encaminhar cookies (todos ou um subconjunto), CloudFront classifica os cookies em ordem natural pelo nome do cookie antes de encaminhar a solicitação para sua origem.

If-Modified-Since e If-None-Match

If-Modified-Sincee solicitações If-None-Match condicionais não são suportadas quando CloudFront configurado para encaminhar cookies (todos ou um subconjunto).

O formato padrão do par nome-valor é obrigatório

CloudFront encaminha um cabeçalho de cookie somente se o valor estiver em conformidade com o formato padrão do par nome-valor, por exemplo: "Cookie: cookie1=value1; cookie2=value2"

Desativar o armazenamento em cache de cabeçalhos Set-Cookie

Se CloudFront estiver configurado para encaminhar cookies para a origem (sejam todos cookies ou específicos), ele também armazena em cache os Set-Cookie cabeçalhos recebidos na resposta de origem. CloudFront inclui esses Set-Cookie cabeçalhos em sua resposta ao visualizador original e também os inclui nas respostas subsequentes que são fornecidas pelo CloudFront cache.

Se você quiser receber cookies em sua origem, mas não quiser CloudFront armazenar em cache Set-Cookie os cabeçalhos nas respostas de sua origem, configure sua origem para adicionar um Cache-Control cabeçalho com uma no-cache diretiva que especifica Set-Cookie como nome de campo. Por exemplo: Cache-Control: no-cache="Set-Cookie". Para obter mais informações, consulte Response Cache-Control Directives no padrão Hypertext Transfer Protocol (HTTP/1.1): Caching.

Tamanho máximo dos nomes de cookies

Se você configurar CloudFront para encaminhar cookies específicos para sua origem, o número total de bytes em todos os nomes de cookies que você configura CloudFront para encaminhar não pode exceder 512 menos o número de cookies que você está encaminhando. Por exemplo, se você configurar CloudFront para encaminhar 10 cookies para sua origem, o comprimento combinado dos nomes dos 10 cookies não poderá exceder 502 bytes (512 — 10).

Se você configurar CloudFront para encaminhar todos os cookies para sua origem, o tamanho dos nomes dos cookies não importa.

Para obter informações sobre como usar o CloudFront console para atualizar uma distribuição e CloudFront encaminhar os cookies para a origem, consulteAtualizar uma distribuição. Para obter informações sobre o uso da CloudFront API para atualizar uma distribuição, consulte UpdateDistributiona Amazon CloudFront API Reference.