Google mudará o cache do Chrome para melhorar o desempenho

Em uma proposta polêmica, o Google mudará o cache do Chrome para melhorar o desempenho, ignorando o cabeçalho “Cache-control: no-store”.

Segundo o site web.dev do Google, o “bfcache é um cache na memória que armazena um instantâneo completo de uma página (incluindo o heap JavaScript) enquanto o usuário navega. Com a página inteira na memória, o navegador pode restaurá-la de forma rápida e fácil caso o usuário decida retornar”.

Os administradores do site podem especificar como suas páginas da web são armazenadas no cache do navegador usando o cabeçalho “Cache-control:”. Uma opção é usar o cabeçalho “Cache-control: no-store”, que evita que a resposta do site seja armazenada no navegador.

No entanto, os navegadores não armazenam páginas da web no bfcache se usarem esse cabeçalho, causando problemas de desempenho quando os usuários retornam a essas páginas usando os botões voltar e avançar do navegador.

Agora, o Google está introduzindo uma mudança significativa no comportamento do Back/Forward Cache (BFCache) do Chrome, permitindo que páginas da web sejam armazenadas no cache, mesmo que um webmaster especifique para não armazenar uma página no cache do navegador.

Google mudará o cache do Chrome para melhorar o desempenho

Google mudará o cache do Chrome para melhorar o desempenho
Google mudará o cache do Chrome para melhorar o desempenho

O Google propõe que as páginas da web sejam armazenadas no BFCache mesmo quando o cabeçalho “Cache-control: no-store” estiver presente nas páginas HTTPS.

Essa abordagem aumentaria as instâncias de navegações instantâneas para trás/para frente, resultando em uma experiência melhor.

O engenheiro do Google, Fergal Daly, diz que o objetivo principal não é impedir a restauração de páginas que contenham dados confidenciais. Em vez disso, o foco é evitar a restauração de páginas com dados sensíveis aos quais o usuário não deveria mais ter acesso.

Se não houver alterações nos cookies, presume-se que as solicitações HTTP do navegador e, portanto, as decisões de acesso, permaneçam consistentes. O desafio reside nas alterações no servidor que resultam em perda de acesso.

Para sites que usam tecnologias como EventSource para refletir alterações em páginas abertas, essas atualizações acionarão a remoção do BFCache ou entregarão eventos imediatamente após a restauração.

Para sites sem mecanismos de atualização imediata, existe o risco de os usuários acessarem dados desatualizados, o que o comportamento proposto do BFCache poderia potencialmente exacerbar.

O Google está trabalhando para resolver essas preocupações, lançando o recurso primeiro para testar os canais e obtendo dados suficientes para compreender o impacto.

Alguns levantaram preocupações de que essa mudança poderia quebrar promessas feitas aos desenvolvedores da web, que presumem que o cabeçalho “Cache-control: no-store” significa que o navegador não armazenará a página da web em cache.

“Para mim, isso parece tocar uma área sensível e não tenho certeza de como isso acontecerá no mundo real”, comentou o desenvolvedor do Opera, Daniel Bratell.

“Mesmo que cache-control: no-store esteja sendo usado em demasia, e os números que você lista parecem indicar que é esse o caso, não houve uma promessa aos desenvolvedores da web de que tal recurso desaparecerá para sempre assim que a página for não é mais mostrado, e isso é uma promessa que pode ser razoavelmente quebrada?”

No entanto, Daly diz que este cabeçalho apenas promete não armazenar uma página da web no cache normal do navegador, e não no bfcache.

“Não há nenhuma promessa explícita de que o CCNS impeça o BFCaching. O cabeçalho CCNS, ou em geral, todas as diretivas de controle de cache, destinam-se a controlar o cache HTTP, portanto, a promessa explícita é sobre o cache HTTP”, explicou Daly.

“O BFCache não faz parte do cache HTTP e os desenvolvedores não devem interpretar o cabeçalho CCNS como uma promessa de que a página não será BFCached.”

Ao redefinir como o BFCache interage com a diretiva “Cache-control: no-store”, os desenvolvedores do Google Chrome esperam criar uma experiência de navegação mais responsiva sem comprometer a segurança e a privacidade do usuário.

Sobre o Edivaldo Brito

Edivaldo Brito é analista de sistemas, gestor de TI, blogueiro e também um grande fã de sistemas operacionais, banco de dados, software livre, redes, programação, dispositivos móveis e tudo mais que envolve tecnologia.