Proxy de pré-busca particular no Chrome

Katie Hempenius
Katie Hempenius
Kenji Baheux
Kenji Baheux
Michael Buettner
Michael Buettner

Aceleração da Largest Contentful Paint (LCP) com a pré-busca entre sites.

A partir do Chrome 103 para Android, o Chrome vai lançar gradualmente um recurso de proxy de pré-busca particular para acelerar as navegações contínuas da Pesquisa Google e de outros sites participantes em 30%, na média. Esse recurso de proxy de pré-busca particular permite a pré-busca de conteúdo de origem cruzada sem expor as informações do usuário ao site de destino até que ele navegue.

Continue lendo para saber como esse recurso funciona, como ele pode ajudar a melhorar significativamente a Maior exibição de conteúdo (LCP) ou como os sites referenciadores podem ajudar os usuários a atingir as metas, acelerando as navegações entre sites.

Como funciona o proxy de pré-busca particular

Canal de comunicação seguro

Esse recurso usa um proxy CONNECT para estabelecer um canal de comunicação seguro entre o Chrome e o servidor que hospeda o conteúdo a ser pré-buscado. Esse canal de comunicação seguro impede que o proxy inspecione qualquer transferência de dados. Embora o proxy de pré-busca particular veja necessariamente o nome do host para estabelecer um canal de comunicação seguro, ele não vê os URLs completos nem os recursos em si.

Animação mostrando o fluxo de dados pelo proxy.
Fazer a pré-busca de sites usando um proxy CONNECT evita o vazamento de informações do usuário.

Além disso, como o canal de comunicação seguro é criptografado de ponta a ponta, os intermediários não conseguem observar os nomes dos hosts nem o conteúdo dos sites pré-buscados. Por fim, o proxy impede inerentemente que o servidor de destino veja o endereço IP do usuário.

Como impedir a identificação do usuário

Além dos aspectos de rede detalhados anteriormente, também precisamos evitar que os servidores identifiquem um usuário no momento da pré-busca usando informações armazenadas anteriormente no dispositivo. Para isso, o Chrome restringe o uso do proxy de pré-busca particular a sites nos quais o usuário não tem cookies ou outro estado local. Estas são as restrições para solicitações de pré-busca feitas pelo proxy de pré-busca particular:

  • Cookies:as solicitações de pré-busca não podem transportar cookies.
    • Se houver um cookie para um recurso, o Chrome fará uma busca não credenciada, mas não usará a resposta. Consulte a seção Armazenamento em cache mais adiante.
    • Embora as respostas a uma solicitação de pré-busca possam incluir cookies, esses cookies só serão salvos se o usuário navegar para a página pré-buscada.
  • Impressão digital:outras superfícies que podem ser usadas para impressão também são ajustadas. Por exemplo, o cabeçalho User-Agent enviado pelo proxy de pré-busca carrega apenas informações limitadas.

No futuro, esperamos expandir o proxy de pré-busca particular para vincular cookies ou estados locais, mantendo as mesmas características de privacidade. Consulte a seção A seguir para saber mais detalhes.

Armazenamento em cache

O Chrome fará a pré-busca de recursos mesmo que eles já estejam no cache, mas não carregarão cabeçalhos condicionais, como ETag ou If-Modified-Since. Eles contêm valores definidos pelo servidor que podem ser usados para rastreamento mesmo sem cookies. Essa pré-busca é feita para evitar o vazamento do estado de cache de um cliente para o site pré-buscado. Além disso, o Chrome só confirmará um recurso pré-buscado no cache se o usuário decidir navegar até o site pré-buscado.

Introdução ao proxy de pré-busca particular

Para proprietários de sites

Os proprietários de sites não precisam fazer nada para começar a aproveitar o proxy de pré-busca particular em links sem cookies ou estado local do usuário. De acordo com nossos experimentos, essa é uma oportunidade significativa para a maioria dos sites. Além disso, é sempre uma boa ideia impressionar os visitantes novos ou os pouco frequentes com uma experiência de carregamento super-rápido. Em experimentos anteriores, a "Maior exibição de conteúdo" aumentou entre 20% e 30% nas navegações pré-buscadas.

No futuro, esperamos expandir esse recurso para vincular cookies ou estado local, mantendo as características de privacidade. O desafio dos cookies é que eles podem ser usados para alterar a experiência do usuário de maneiras difíceis de prever. Portanto, os proprietários de sites provavelmente terão que aceitar ou ajustar o site para se beneficiar do proxy de pré-busca particular para links com cookies.

Concretamente, embora as solicitações de pré-busca permaneçam sem credenciais, a página da Web terá acesso a cookies e outros estados locais quando o usuário navegar até ela. Os desenvolvedores podem aproveitar isso para adicionar novamente a personalização e mudanças com base em cookies ou no estado local. Talvez os desenvolvedores também tenham interesse em declarar determinados recursos como perfeitamente adequados para pré-busca e uso no estado em que se encontram, sem cookies (ou seja, recursos que não dependem de cookies). Confira a seção Próximas etapas para saber mais e informar nosso plano.

Conteúdo ou serviços geográficos

Caso seu site tenha um comportamento diferente (por exemplo, conteúdo ou acesso seletivo) entre os mercados com base no endereço IP do usuário, talvez você esteja se perguntando como lidar com as solicitações de pré-busca do proxy de pré-busca particular. É importante saber que o proxy de pré-busca particular é alimentado por vários servidores espalhados pelo mundo, e o IP do proxy é localizado geograficamente para o país de onde o usuário iniciou uma pré-busca.

Pensando nisso, recomendamos o seguinte:

  1. Identifique as solicitações de pré-busca do proxy de pré-busca particular pela presença de um cabeçalho HTTP Sec-Purpose: Prefetch; anonymous-client-ip.
  2. Pesquise a geolocalização do proxy de pré-busca particular que emitiu a solicitação por meio do endereço IP. Consulte este recurso para ver uma lista atualizada de regiões geográficas implantadas e os endereços IP correspondentes.
  3. Disponibilize recursos de acordo com o mercado associado a essa geolocalização específica.

Controle de tráfego

Com base em experimentos anteriores, sabemos que esse recurso normalmente resulta em menos de 2% de solicitações extras para os recursos principais (por exemplo, documentos HTML). Dito isso, se você for do tipo cauteloso, poderá usar o campo de fração das recomendações de tráfego para controlar a quantidade de tráfego que o proxy de pré-busca particular deve deixar passar. Você pode começar com uma pequena fração, como 0,3 (ou seja, 30%), e aumentar gradualmente para 1,0 (ou seja, 100%) adicionando o seguinte JSON a um arquivo /.well-known/traffic-advice, que precisa ser disponibilizado com o tipo MIME application/trafficadvice+json:

[{
  "user_agent": "prefetch-proxy",
  "fraction": 0.3
}]

O campo fraction é um ponto flutuante entre 0.0 (sem pré-busca) e 1.0 (100% das solicitações de pré-busca são recebidas).

Também é possível desativar esse recurso completamente com a seguinte configuração:

[{
  "user_agent": "prefetch-proxy",
  "disallow": true
}]

O arquivo /.well-known/traffic-advice é buscado pelo proxy, não pelo cliente, e armazenado em cache no proxy de acordo com a semântica habitual de cache HTTP. Para ter mais flexibilidade, por exemplo, um pico repentino de acesso pesado, rejeite temporariamente as solicitações de pré-busca (Sec-Purpose: prefetch;anonymous-client-ip) com um código de status 503 e defina o cabeçalho Cache-Control: no-store na resposta. Também é possível adicionar o cabeçalho Retry-After para informar ao Chrome quanto tempo esperar antes de repetir as solicitações de pré-busca.

Para proprietários de sites referenciadores

Se você opera um site com muitos links para outros sites, pode ser interessante usar o recurso Proxy de pré-busca particular para acelerar as navegações de origem cruzada. Será necessário adicionar regras de especulação às suas páginas para que o Chrome saiba qual página deve ser pré-buscada pelo proxy de pré-busca particular. Este é um exemplo simples:

<script type="speculationrules">
{
  "prefetch": [
    "source": "list",
    "urls": ["https://example.com/index.html"],
    "requires": ["anonymous-client-ip-when-cross-origin"]
  ]
}
</script>

Qual é a próxima etapa?

Esse lançamento é apenas a primeira etapa. Esperamos expandir e melhorar esse recurso com base no interesse e no feedback da comunidade. Por exemplo, gostaríamos de receber feedback sobre como expandir para links com cookies e estado local de uma forma que minimize o atrito do desenvolvedor ou maneiras de tornar esse recurso mais útil para sites referenciadores.

Leia mais