Gerencie comportamentos de solicitação e resposta para distribuições do Lightsail - Amazon Lightsail

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á.

Gerencie comportamentos de solicitação e resposta para distribuições do Lightsail

Neste guia, descrevemos a forma como sua distribuição do Amazon Lightsail se comporta ao processar e encaminhar solicitações para sua origem e processar respostas de sua origem. Para obter mais informações sobre distribuições, consulte Distribuições de rede de entrega de conteúdo.

Tópicos

Como sua distribuição processa e encaminha solicitações para a sua origem

Esta seção contém informações sobre como a sua distribuição processa solicitações do visualizador e as encaminha para a sua origem.

Índice

Autenticação

Para solicitações DELETE, GET, HEAD, PATCH, POST e PUT, se você configurar sua distribuição para encaminhar o cabeçalho Authorization para sua origem, poderá configurar seu servidor de origem para solicitar a autenticação do cliente.

Para solicitações do OPTIONS, você pode configurar seu servidor de origem para solicitar a autenticação do cliente somente se usar as seguintes configurações da distribuição:

  • Configure sua distribuição para encaminhar o cabeçalho Authorization para a sua origem.

  • Configure sua distribuição para não armazenar em cache a resposta a solicitações do OPTIONS.

Você pode configurar sua distribuição para encaminhar solicitações para sua origem usando HTTP ou HTTPS.

Duração do cache

Para controlar quanto tempo seus objetos permanecem em um cache da sua distribuição antes que a distribuição encaminhe outra solicitação para a sua origem, você pode:

  • Configurar sua origem para adicionar um campo de cabeçalho Cache-Control ou Expires a cada objeto.

  • Usar o valor padrão de 1 dia para o tempo de vida (TTL) do cache.

Para obter mais informações, consulte configurações avançadas da distribuição.

Endereços IP do cliente

Se um visualizador enviar uma solicitação para a sua distribuição e não incluir um cabeçalho de solicitação X-Forwarded-For, sua distribuição obterá o endereço IP do visualizador na conexão TCP, adicionará um cabeçalho X-Forwarded-For que inclui o endereço IP e encaminhará a solicitação para a origem. Por exemplo, se a sua distribuição obtiver o endereço IP 192.0.2.2 da conexão TCP, o seguinte cabeçalho será encaminhado para a origem:

X-Forwarded-For: 192.0.2.2

Se um visualizador enviar uma solicitação para a sua distribuição e incluir um cabeçalho de solicitação X-Forwarded-For, sua distribuição obterá o endereço IP do visualizador na conexão TCP, vai incluí-lo no final do cabeçalho X-Forwarded-For e encaminhará a solicitação para a origem. Por exemplo, se a solicitação do visualizador incluir X-Forwarded-For: 192.0.2.4,192.0.2.3 e a sua distribuição obtiver o endereço IP 192.0.2.2 da conexão TCP, ela encaminhará o seguinte cabeçalho para a origem:

X-Forwarded-For: 192.0.2.4,192.0.2.3,192.0.2.2

Algumas aplicações, como balanceadores de carga, firewalls de aplicações Web, proxies reversos, sistemas de prevenção de invasão e API Gateway, acrescentam o endereço IP do servidor de borda da distribuição que encaminhou a solicitação ao final do cabeçalho X-Forwarded-For. Por exemplo, se a sua distribuição incluir X-Forwarded-For: 192.0.2.2 em uma solicitação encaminhada para o ELB e o endereço IP do servidor de borda da distribuição for 192.0.2.199, a solicitação recebida por sua instância terá o seguinte cabeçalho:

X-Forwarded-For: 192.0.2.2,192.0.2.199

nota

O cabeçalho X-Forwarded-For contém endereços IPv4 (como 192.0.2.44) e IPv6 (como 2001:0db8:85a3:0000:0000:8a2e:0370:7334).

Autenticação SSL do lado do cliente

As distribuições Lightsail não oferecem suporte à autenticação de clientes com certificados SSL do lado do cliente. Se uma origem solicitar um certificado do lado do cliente, sua distribuição encerrará a solicitação.

Compactação

As distribuições do Lightsail encaminham solicitações que têm Accept-Encoding os valores de campo e. "identity" "gzip"

Solicitações condicionais

Quando sua distribuição recebe uma solicitação de um objeto que expirou de um cache de borda, ela encaminha a solicitação para a sua origem para obter a versão mais recente do objeto ou a confirmação pela origem de que o cache de borda da distribuição já tem a versão mais recente. Normalmente, quando a origem enviou o objeto pela última vez para a sua distribuição, ele incluiu um valor ETag, um valor LastModified ou ambos os valores na resposta. Na nova solicitação que a sua distribuição encaminha à origem, ela adiciona um destes (ou ambos):

  • Um cabeçalho If-Match ou If-None-Match com o valor ETag da versão expirada do objeto.

  • Um cabeçalho If-Modified-Since com o valor LastModified da versão expirada do objeto.

A origem usa essas informações para determinar se o objeto foi atualizado e, portanto, se deve retornar todo o objeto para a sua distribuição ou apenas um código de estado HTTP 304 (não modificado).

Cookies

Você pode configurar sua distribuição para encaminhar cookies para a sua origem. Para obter mais informações, consulte configurações avançadas da distribuição.

Compartilhamento de recursos de origem cruzada (CORS)

Se você quiser que sua distribuição respeite as configurações de compartilhamento de recursos entre origens, configure sua origem para encaminhar o cabeçalho Origin para a sua origem.

Criptografia

Você pode exigir que os visualizadores se conectem à distribuição usando HTTPS e exigir que sua distribuição encaminhe solicitações à origem usando HTTP ou HTTPS.

Sua distribuição encaminha solicitações HTTPS para a sua origem usando os protocolos SSLv3, TLSv1.0, TLSv1.1 e TLSv1.2. Outras versões de SSL e TLS não são compatíveis.

Solicitações GET que incluem um corpo

Se uma solicitação GET do visualizador incluir um corpo, sua distribuição retornará o código de estado HTTP 403 (Proibido).

Métodos HTTP

Se você configurar sua distribuição para permitir todos os métodos HTTP compatíveis, ela aceitará as seguintes solicitações dos visualizadores e as encaminhará para a sua origem:

  • DELETE

  • GET

  • HEAD

  • OPTIONS

  • PATCH

  • POST

  • PUT

Sua distribuição sempre armazena respostas às solicitações GET e HEAD em cache. Você também pode configurar sua distribuição para armazenar respostas a solicitações OPTIONS em cache. Sua distribuição não armazena em cache respostas a solicitações que utilizam os outros métodos.

Para obter informações sobre como configurar se sua origem processa esses métodos ou não, consulte a documentação da sua origem.

Importante

Se você configurar sua distribuição para aceitar e encaminhar todos os métodos HTTP compatíveis com ela para a sua origem, configure seu servidor de origem para lidar com todos eles. Por exemplo, se você configurar sua distribuição para aceitar e encaminhar esses métodos porque deseja usar POST, será preciso configurar seu servidor de origem para lidar com solicitações DELETE de forma apropriada para que os visualizadores não possam excluir recursos que não devem ser excluídos. Para obter mais informações, consulte a documentação do seu servidor HTTP.

Cabeçalhos de solicitação HTTP e comportamento da distribuição

A tabela a seguir lista os cabeçalhos de solicitação HTTP que você pode encaminhar para a sua origem (com as exceções observadas). Para cada cabeçalho, a tabela inclui informações sobre o seguinte:

  • Compatível: se você pode configurar sua distribuição para armazenar os objetos em cache com base nos valores do cabeçalho em questão.

    Você pode configurar sua distribuição para armazenar objetos em cache com base nos valores dos cabeçalhos Date e User-Agent, mas não recomendamos que você faça isso. Esses cabeçalhos podem ter diversos valores, e o armazenamento em cache com base nesses valores faz com que sua distribuição encaminhe muito mais solicitações à sua origem.

  • Comportamento se não estiver configurado: o comportamento da distribuição se você não configurá-la para encaminhar o cabeçalho para sua origem, o que faz com que sua distribuição armazene seus objetos em cache com base nos valores do cabeçalho.

  • Cabeçalho: outros cabeçalhos definidos

    Compatível: sim

    Comportamento se não estiver configurado: sua distribuição encaminha os cabeçalhos à sua origem.

  • Cabeçalho: Accept

    Compatível: sim

    Comportamento se não estiver configurado: sua distribuição remove o cabeçalho.

  • Cabeçalho: Accept-Charset

    Compatível: sim

    Comportamento se não estiver configurado: sua distribuição remove o cabeçalho.

  • Cabeçalho: Accept-Encoding

    Compatível: sim

    Comportamento se não estiver configurado: se o valor contiver gzip, sua distribuição encaminha Accept-Encoding: gzip para sua origem. Se o valor não contiver gzip, sua distribuição removerá o campo de cabeçalho Accept-Encoding antes de encaminhar a solicitação para sua origem.

  • Cabeçalho: Accept-Language

    Compatível: sim

    Comportamento se não estiver configurado: sua distribuição remove o cabeçalho.

  • Cabeçalho: Authorization

    Compatível: sim

    Comportamento se não estiver configurado:

    • Solicitações GET e HEAD: sua distribuição remove o campo de cabeçalho Authorization antes de encaminhar a solicitação para a origem.

    • Solicitações OPTIONS: sua distribuição remove o campo de cabeçalho Authorization antes de encaminhar a solicitação para sua origem se você configurá-la para armazenar em cache respostas a solicitações OPTIONS.

      Sua distribuição encaminhará o campo de cabeçalho Authorization para sua origem se você não configurar sua distribuição para armazenar respostas a solicitações OPTIONS em cache.

    • Solicitações DELETE, PATCH, POST e PUT: sua distribuição não remove o campo de cabeçalho antes de encaminhar a solicitação para a origem.

  • Cabeçalho: Cache-Control

    Compatível: não

    Comportamento se não estiver configurado: sua distribuição encaminha o cabeçalho para sua origem.

  • Cabeçalho: CloudFront-Forwarded-Proto

    Compatível: sim

    Comportamento se não estiver configurado: sua distribuição não adiciona o cabeçalho antes de encaminhar a solicitação para sua origem.

  • Cabeçalho: CloudFront-Is-Desktop-Viewer

    Compatível: sim

    Comportamento se não estiver configurado: sua distribuição não adiciona o cabeçalho antes de encaminhar a solicitação para sua origem.

  • Cabeçalho: CloudFront-Is-Mobile-Viewer

    Compatível: sim

    Comportamento se não estiver configurado: sua distribuição não adiciona o cabeçalho antes de encaminhar a solicitação para sua origem.

  • Cabeçalho: CloudFront-Is-Tablet-Viewer

    Compatível: sim

    Comportamento se não estiver configurado: sua distribuição não adiciona o cabeçalho antes de encaminhar a solicitação para sua origem.

  • Cabeçalho: CloudFront-Viewer-Country

    Compatível: sim

    Comportamento se não estiver configurado: sua distribuição não adiciona o cabeçalho antes de encaminhar a solicitação para sua origem.

  • Cabeçalho: Connection

    Compatível: não

    Comportamento se não estiver configurado: sua distribuição substitui Connection: Keep-Alive por este cabeçalho antes de encaminhar a solicitação para sua origem.

  • Cabeçalho: Content-Length

    Compatível: não

    Comportamento se não estiver configurado: sua distribuição encaminha o cabeçalho para sua origem.

  • Cabeçalho: Content-MD5

    Compatível: sim

    Comportamento se não estiver configurado: sua distribuição encaminha o cabeçalho para sua origem.

  • Cabeçalho: Content-Type

    Compatível: sim

    Comportamento se não estiver configurado: sua distribuição encaminha o cabeçalho para sua origem.

  • Cabeçalho: Cookie

    Compatível: não

    Comportamento se não estiver configurado: se você configurar sua distribuição para encaminhar cookies, ela encaminhará o campo de cabeçalho Cookie para sua origem. Caso contrário, sua distribuição removerá o campo de cabeçalho Cookie.

  • Cabeçalho: Date

    Compatível: sim, mas não recomendado

    Comportamento se não estiver configurado: sua distribuição encaminha o cabeçalho para sua origem.

  • Cabeçalho: Expect

    Compatível: sim

    Comportamento se não estiver configurado: sua distribuição remove o cabeçalho.

  • Cabeçalho: From

    Compatível: sim

    Comportamento se não estiver configurado: sua distribuição encaminha o cabeçalho para sua origem.

  • Cabeçalho: Host

    Compatível: sim

    Comportamento se não estiver configurado: sua distribuição define o valor do nome de domínio da origem associada ao objeto solicitado.

  • Cabeçalho: If-Match

    Compatível: sim

    Comportamento se não estiver configurado: sua distribuição encaminha o cabeçalho para sua origem.

  • Cabeçalho: If-Modified-Since

    Compatível: sim

    Comportamento se não estiver configurado: sua distribuição encaminha o cabeçalho para sua origem.

  • Cabeçalho: If-None-Match

    Compatível: sim

    Comportamento se não estiver configurado: sua distribuição encaminha o cabeçalho para sua origem.

  • Cabeçalho: If-Range

    Compatível: sim

    Comportamento se não estiver configurado: sua distribuição encaminha o cabeçalho para sua origem.

  • Cabeçalho: If-Unmodified-Since

    Compatível: sim

    Comportamento se não estiver configurado: sua distribuição encaminha o cabeçalho para sua origem.

  • Cabeçalho: Max-Forwards

    Compatível: não

    Comportamento se não estiver configurado: sua distribuição encaminha o cabeçalho para sua origem.

  • Cabeçalho: Origin

    Compatível: sim

    Comportamento se não estiver configurado: sua distribuição encaminha o cabeçalho para sua origem.

  • Cabeçalho: Pragma

    Compatível: não

    Comportamento se não estiver configurado: sua distribuição encaminha o cabeçalho para sua origem.

  • Cabeçalho: Proxy-Authenticate

    Compatível: não

    Comportamento se não estiver configurado: sua distribuição remove o cabeçalho.

  • Cabeçalho: Proxy-Authorization

    Compatível: não

    Comportamento se não estiver configurado: sua distribuição remove o cabeçalho.

  • Cabeçalho: Proxy-Connection

    Compatível: não

    Comportamento se não estiver configurado: sua distribuição remove o cabeçalho.

  • Cabeçalho: Range

    Compatível: sim, por padrão

    Comportamento se não estiver configurado: sua distribuição encaminha o cabeçalho para sua origem.

  • Cabeçalho: Referer

    Compatível: sim

    Comportamento se não estiver configurado: sua distribuição remove o cabeçalho.

  • Cabeçalho: Request-Range

    Compatível: não

    Comportamento se não estiver configurado: sua distribuição encaminha o cabeçalho para sua origem.

  • Cabeçalho: TE

    Compatível: não

    Comportamento se não estiver configurado: sua distribuição remove o cabeçalho.

  • Cabeçalho: Trailer

    Compatível: não

    Comportamento se não estiver configurado: sua distribuição remove o cabeçalho.

  • Cabeçalho: Transfer-Encoding

    Compatível: não

    Comportamento se não estiver configurado: sua distribuição encaminha o cabeçalho para sua origem.

  • Cabeçalho: Upgrade

    Compatível - Não (exceto para WebSocket conexões)

    Comportamento se não estiver configurado - Sua distribuição remove o cabeçalho, a menos que você tenha estabelecido uma WebSocket conexão.

  • Cabeçalho: User-Agent

    Compatível: sim, mas não recomendado

    Comportamento se não estiver configurado: sua distribuição substitui Amazon CloudFront pelo valor desse campo de cabeçalho.

  • Cabeçalho: Via

    Compatível: sim

    Comportamento se não estiver configurado: sua distribuição encaminha o cabeçalho para sua origem.

  • Cabeçalho: Warning

    Compatível: sim

    Comportamento se não estiver configurado: sua distribuição encaminha o cabeçalho para sua origem.

  • Cabeçalho: X-Amz-Cf-Id

    Compatível: não

    Comportamento se não estiver configurado: sua distribuição adiciona o cabeçalho à solicitação do visualizador antes de encaminhá-la para sua origem. O valor do cabeçalho contém uma string criptografada que identifica exclusivamente a solicitação.

  • Cabeçalho: X-Edge-*

    Compatível: não

    Comportamento se não estiver configurado: sua distribuição remove todos os cabeçalhos X-Edge-*.

  • Cabeçalho: X-Forwarded-For

    Compatível: sim

    Comportamento se não estiver configurado: sua distribuição encaminha o cabeçalho para sua origem.

  • Cabeçalho: X-Forwarded-Proto

    Compatível: não

    Comportamento se não estiver configurado: sua distribuição remove o cabeçalho.

  • Cabeçalho: X-Real-IP

    Compatível: não

    Comportamento se não estiver configurado: sua distribuição remove o cabeçalho.

Versão do HTTP

Sua distribuição encaminha solicitações para a sua origem usando HTTP/1.1.

Tamanho máximo de uma solicitação e de um URL

O tamanho máximo de uma solicitação, com o caminho, a query string (se houver) e os cabeçalhos, é de 20.480 bytes.

Sua distribuição cria um URL a partir da solicitação. O tamanho máximo do URL é de 8.192 bytes.

Se uma solicitação ou um URL ultrapassar esses limites máximos, sua distribuição retornará o código de estado HTTP 413, Entidade de solicitação muito grande, para o visualizador e encerrará a conexão TCP com ele.

OCSP Stapling

Quando um visualizador envia uma solicitação HTTPS para um objeto, tanto ele quanto sua distribuição devem confirmar com a autoridade de certificação (CA) se o certificado SSL do domínio não foi revogado. O OCSP Stapling acelera a validação do certificado, permitindo que sua distribuição valide o certificado e armazene as respostas da CA em cache, para que o cliente não precise validar o certificado diretamente com a CA.

A melhoria de performance do OCSP Stapling é mais acentuada quando sua distribuição recebe várias solicitações HTTPS para objetos no mesmo domínio. Cada servidor em um local da borda da distribuição deve enviar uma solicitação de validação separada. Quando sua distribuição recebe um grande número de solicitações HTTPS para o mesmo domínio, cada servidor no local da borda tem rapidamente uma resposta da CA de que pode "grampear" em um pacote no handshake SSL; quando o visualizador acreditar que o certificado é válido, sua distribuição poderá fornecer o objeto solicitado. Caso sua distribuição não tenha muito tráfego em um local da borda, é provável que novas solicitações sejam direcionadas para um servidor que ainda não validou o certificado com a CA. Nesse caso, o visualizador executa separadamente a etapa de validação, e o servidor da distribuição fornece o objeto. Esse servidor da distribuição também envia uma solicitação de validação para a CA para que, na próxima vez que receber uma solicitação que inclua o mesmo nome de domínio, tenha uma resposta de validação da CA.

Conexões persistentes

Ao obter uma resposta da sua origem, sua distribuição tenta manter a conexão por alguns segundos caso chegue outra solicitação nesse período. A manutenção de uma conexão persistente economiza o tempo necessário para restabelecer a conexão TCP e executar outro handshake TLS para solicitações subsequentes.

Protocolos

Sua distribuição encaminha solicitações HTTP ou HTTPS para o servidor de origem com base no valor do campo Política do protocolo Origin no console do Lightsail. No console do Lightsail, as opções são somente HTTP e somente HTTPS.

Se você especificar Somente HTTP ou Somente HTTPS, sua distribuição encaminhará as solicitações para a sua origem usando o protocolo especificado, independentemente do protocolo contido na solicitação do visualizador.

Importante

Se a sua distribuição encaminhar uma solicitação para a origem usando o protocolo HTTPS e o servidor de origem retornar um certificado inválido ou autoassinado, sua distribuição encerrará a conexão TCP.

Strings de consulta

Você pode configurar se a sua distribuição encaminha parâmetros de strings de consulta para sua origem.

Tempo limite e tentativas de conexão com a origem

Por padrão, sua distribuição aguarda até 30 segundos (3 tentativas de 10 segundos cada) antes de retornar uma resposta de erro ao visualizador.

Tempo limite de resposta da origem

O tempo limite de resposta da origem, também conhecido como tempo limite de leitura da origem ou tempo limite de solicitação da origem, aplica-se a estes dois valores:

  • A quantidade de tempo, em segundos, que a sua distribuição aguarda uma resposta após o encaminhamento de uma solicitação à origem.

  • A quantidade de tempo, em segundos, que a sua distribuição aguarda após o recebimento de um pacote de resposta da origem e antes do recebimento do próximo pacote.

O comportamento da sua distribuição depende do método HTTP na solicitação do visualizador:

  • Solicitações GET e HEAD: se a origem não responder ou parar de responder dentro da duração do tempo limite da resposta, a distribuição encerrará a conexão. Se o número especificado de tentativas de conexão com a origem for maior que 1, sua distribuição tentará novamente obter uma resposta completa. Sua distribuição tenta até 3 vezes, conforme determinado pelo valor da configuração de tentativas de conexão com a origem. Se a origem não responder durante a última tentativa, sua distribuição não tentará novamente enquanto não receber outra solicitação de conteúdo na mesma origem.

  • Solicitações DELETE, OPTIONS, PATCH, PUT e POST :se a origem não responder em 30 segundos, a distribuição encerrará a conexão e não tentará entrar em contato com a origem novamente. O cliente pode reenviar a solicitação, se necessário.

Solicitações simultâneas do mesmo objeto (picos de tráfego)

Quando um local da borda da distribuição recebe uma solicitação de um objeto e o objeto não está atualmente em cache ou expirou, sua distribuição envia imediatamente a solicitação para a sua origem. Se houver um pico de tráfego (se solicitações adicionais do mesmo objeto chegarem ao local da borda antes de a origem responder à primeira solicitação), sua distribuição fará uma breve pausa antes de encaminhar solicitações adicionais do objeto à origem. Normalmente, a resposta à primeira solicitação chegará ao local da borda da distribuição antes da resposta às próximas solicitações. Essa breve pausa ajuda a reduzir a carga desnecessária no servidor de origem. Se as solicitações adicionais não forem idênticas porque, por exemplo, você configurou sua distribuição para armazenamento em cache com base nos cabeçalhos de solicitação ou cookies, sua distribuição encaminhará todas as solicitações exclusivas para sua origem.

Cabeçalho User-agent

Se você quiser que sua distribuição armazene diferentes versões dos seus objetos em cache com base no dispositivo usado pelo usuário para visualizar seu conteúdo, recomendamos configurar sua distribuição para encaminhar um ou mais dos cabeçalhos à sua origem:

  • CloudFront-Is-Desktop-Viewer

  • CloudFront-Is-Mobile-Viewer

  • CloudFront-Is-SmartTV-Viewer

  • CloudFront-Is-Tablet-Viewer

Com base no valor do cabeçalho User-Agent, sua distribuição define o valor desses cabeçalhos como true ou false antes de encaminhar a solicitação para sua origem. Se o dispositivo se encaixar em mais de uma categoria, mais de um valor poderá ser true. Por exemplo, para alguns tablets, sua distribuição poderia definir tanto CloudFront-Is-Mobile-Viewer quanto CloudFront-Is-Tablet-Viewer como true.

Você pode configurar sua distribuição para armazenar os objetos em cache com base no cabeçalho User-Agent, mas não recomendamos isso. Há vários valores possíveis para o cabeçalho User-Agent, e o armazenamento em cache com base nesses valores faz com que a distribuição encaminhe muito mais solicitações para sua origem.

Se você não configurar sua distribuição para armazenar os objetos em cache com base nos valores do cabeçalho User-Agent, ela adicionará um cabeçalho User-Agent com o seguinte valor antes de encaminhar uma solicitação para sua origem:

User-Agent = Amazon CloudFront

Sua distribuição adiciona esse cabeçalho, independentemente se a solicitação do visualizador inclui um cabeçalho User-Agent ou não. Se a solicitação do visualizador incluir um cabeçalho User-Agent, sua distribuição vai removê-lo.

Como sua distribuição processa as respostas da sua origem

Esta seção contém informações sobre como sua distribuição processa as respostas da sua origem.

Índice

Respostas 100-Continue

Sua origem não pode enviar mais de uma resposta 100-Continue para sua distribuição. Após a primeira resposta 100-Continue, sua distribuição espera uma resposta HTTP 200 OK. Se sua origem enviar outra resposta 100-Continue após a primeira, sua distribuição retornará um erro.

Armazenamento em cache

  • Certifique-se de que sua origem defina valores válidos e precisos para os campos de cabeçalho Date e Last-Modified.

  • Se solicitações dos visualizadores incluírem o campo de cabeçalho de solicitação If-Match ou If-None-Match, defina o campo de cabeçalho de solicitação ETag. Se você não especificar um valor ETag, sua distribuição ignorará os cabeçalhos If-Match e If-None-Match subsequentes.

  • Sua distribuição normalmente respeita um cabeçalho Cache-Control: no-cache na resposta da origem. Para ver uma exceção, consulte Solicitações simultâneas para o mesmo objeto (picos de tráfego).

Solicitações canceladas

Se o objeto não estiver no cache de borda e o visualizador encerrar uma sessão (por exemplo, fechar um navegador) depois de sua distribuição obter o objeto da origem, mas antes de conseguir fornecer o objeto solicitado, sua distribuição não armazenará o objeto em cache no local da borda.

Negociação de conteúdo

Se a origem retornar Vary:* na resposta e o valor de Minimum TTL do comportamento do cache correspondente for 0, sua distribuição armazenará o objeto em cache, mas ainda encaminhará todas as solicitações subsequentes do objeto à origem para confirmar se o cache contém a versão mais recente do objeto. Sua distribuição não inclui cabeçalhos condicionais, como If-None-Match ou If-Modified-Since. Consequentemente, sua origem retorna o objeto para a distribuição em resposta a cada solicitação.

Se sua origem retornar Vary:* na resposta e se o valor de TTL mínimo para o comportamento de cache correspondente for qualquer outro valor, CloudFront processará o Vary cabeçalho conforme descrito nos cabeçalhos de resposta HTTP que sua distribuição remove ou substitui.

Cookies

Se você permitir cookies para um comportamento de cache e a origem retornar cookies com um objeto, sua distribuição armazenará em cache tanto o objeto quanto os cookies. Observe que isso reduz a capacidade de armazenamento em cache de um objeto.

Conexões TCP encerradas

Se a conexão TCP entre a sua distribuição e sua origem for encerrada enquanto a origem estiver retornando um objeto para a sua distribuição, o comportamento da sua distribuição dependerá da inclusão ou não de um cabeçalho Content-Length na resposta:

  • Cabeçalho Content-Length sua distribuição retorna o objeto para o visualizador assim que o obtém da origem. No entanto, se o valor do cabeçalho Content-Length não corresponder ao tamanho do objeto, sua distribuição não armazenará esse objeto em cache.

  • Transfer-Encoding: Chunked: a distribuição retorna o objeto para o visualizador assim que o recebe da origem. No entanto, se a resposta em partes não for concluída, sua distribuição não armazenará o objeto em cache.

  • Cabeçalho No Content-Length: a distribuição retorna o objeto para o visualizador e o armazena em cache, mas o objeto pode não estar completo. Sem um cabeçalho Content-Length, sua distribuição não consegue determinar se a conexão TCP foi encerrada de forma acidental ou proposital.

Recomendamos que você configure seu servidor HTTP para adicionar um cabeçalho Content-Length e impedir que sua distribuição armazene objetos parciais em cache.

Cabeçalhos de resposta HTTP removidos ou substituídos por sua distribuição

Sua distribuição remove ou atualiza os seguintes campos de cabeçalho antes de encaminhar a resposta da sua origem para o visualizador:

  • Set-Cookie: se você configurar sua distribuição para encaminhar cookies, ela encaminhará o campo do cabeçalho Set-Cookie para os clientes.

  • Trailer

  • Transfer-Encoding: se a origem retornar esse campo do cabeçalho, sua distribuição definirá o valor como chunked antes de retornar a resposta para o visualizador.

  • Upgrade

  • Vary – Observe o seguinte:

    • Se você configurar sua distribuição para encaminhar os cabeçalhos específicos do dispositivo à origem (CloudFront-Is-Desktop-Viewer, CloudFront-Is-Mobile-Viewer, CloudFront-Is-SmartTV-Viewer, CloudFront-Is-Tablet-Viewer) e configurar a origem para retornar Vary:User-Agent à sua distribuição, ela retornará Vary:User-Agent ao visualizador.

    • Se você configurar a origem para incluir Accept-Encoding ou Cookie no cabeçalho Vary, sua distribuição incluirá os valores na resposta ao visualizador.

    • Se você configurar sua distribuição para encaminhar uma lista de permissões de cabeçalhos para sua origem e se configurar sua origem para retornar os nomes dos cabeçalhos à sua distribuição no Vary cabeçalho (por exemplo,Vary:Accept-Charset,Accept-Language), sua distribuição retornará o Vary cabeçalho com esses valores para o visualizador.

    • Para obter informações sobre como sua distribuição processa um valor de * no cabeçalho Vary, consulteNegociação de conteúdo.

    • Se você configurar a origem para incluir qualquer outro valor no cabeçalho Vary, sua distribuição removerá os valores antes de retornar a resposta ao visualizador.

  • Via: sua distribuição define o valor para o seguinte na resposta ao visualizador:

    Via: versão HTTP string alfanumérica.cloudfront.net (CloudFront)

    Por exemplo, se o cliente faz uma solicitação pelo HTTP/1.1, o valor será semelhante a:

    Via: 1.1 1026589cc7887e7a0dc7827b4example.cloudfront.net (CloudFront)

Tamanho máximo do arquivo

O tamanho máximo do corpo de uma resposta retornada pela sua distribuição ao visualizador é de 20 GB. Isso inclui respostas de transferência em partes que não especificam o valor de cabeçalho Content-Length.

Origem indisponível

Se o servidor de origem estiver indisponível e a sua distribuição receber uma solicitação de um objeto que está no cache da borda, mas expirou (por exemplo, porque o período especificado na diretiva Cache-Control max-age se esgotou), sua distribuição enviará a versão expirada do objeto ou uma página de erro personalizada.

Em alguns casos, um objeto que é raramente solicitado é removido e se torna indisponível no local da borda de caches. Sua distribuição não pode fornecer um objeto que foi removido.

Redirecionamentos

Se você alterar a localização de um objeto no servidor de origem, poderá configurar o servidor da Web para redirecionar as solicitações para o novo local. Depois de configurar o redirecionamento, na primeira vez que um visualizador enviar uma solicitação do objeto, sua distribuição vai enviá-la para a origem, e a origem responderá com um redirecionamento (por exemplo, 302 Moved Temporarily). A distribuição armazena o redirecionamento em cache e o retorna para o visualizador. Sua distribuição não acompanha o redirecionamento.

Você pode configurar o servidor da web para redirecionar as solicitações para um destes locais:

  • O novo URL do objeto no servidor de origem. Ao seguir o redirecionamento para o novo URL, o visualizador ignora a distribuição e vai diretamente para a origem. Por isso, recomendamos que você não redirecione as solicitações para o novo URL do objeto na origem.

  • O novo URL da distribuição para o objeto. Quando o visualizador envia a solicitação que contém o novo URL da distribuição, ela obtém o objeto do novo local na sua origem, armazena-o em cache no local da borda e o retorna para o visualizador. As solicitações subsequentes do objeto são fornecidas pelo local da borda. Isso evita a latência e a carga associadas à solicitação do objeto pelo visualizador da origem. No entanto, cada nova solicitação do objeto ocasionará duas solicitações para a sua distribuição.

Codificação de transferência

As distribuições do Lightsail oferecem suporte somente ao valor chunked do cabeçalho. Transfer-Encoding Se a origem retornar Transfer-Encoding: chunked, sua distribuição retornará o objeto para o cliente assim que ele for recebido no local da borda e vai armazená-lo em blocos no cache para solicitações subsequentes.

Se o visualizador fizer uma solicitação Range GET e a origem retornar Transfer-Encoding: chunked, sua distribuição retornará o objeto inteiro para o visualizador, em vez do intervalo solicitado.

Recomendamos que você use codificação em partes se o tamanho do conteúdo da sua resposta não puder ser predeterminado. Para obter mais informações, consulteConexões TCP encerradas.