Resumo

  • O primeiro rascunho público de Resource Hints do W3C, de outubro de 2014, descreveu preconnect como indicação de uma origem conhecida antes da URL completa do recurso. A preparação podia antecipar DNS, o aperto de mão TCP e, quando cabível, TLS.
  • Os rascunhos posteriores separaram dns-prefetch, preconnect, prefetch e prerender. O navegador podia estabelecer a conexão inteira, fazer apenas parte do trabalho ou ignorar a sugestão conforme as condições locais.

Um álbum digital sabe em qual servidor guarda as fotos. A próxima foto depende do leitor. Seria um desperdício buscar todas só para parecer rápido; começar a conversar com o servidor pode ser uma aposta menor. Entre conhecer a origem e conhecer o arquivo específico existe uma janela. preconnect foi desenhado para trabalhar nessa janela, sem fingir que o futuro já entregou o pedido.

O primeiro rascunho público do W3C, de 21 de outubro de 2014, apresentou a conexão antecipada como sugestão da página ou do servidor ao navegador. A lista de tarefas incluía consulta DNS, aperto de mão TCP e negociação TLS opcional. O texto inicial também falava em preload, voltado a um recurso concreto. A diferença é econômica e técnica: reservar contato com a cozinha não significa encomendar cada prato do cardápio.

No rascunho de 4 de maio de 2017, quatro relações tinham papéis distintos. dns-prefetch antecipa a resolução do nome. preconnect aproxima o navegador de uma conexão pronta. prefetch busca um recurso que pode ser necessário na próxima navegação. prerender pode preparar um documento futuro. São degraus diferentes de especulação. Saber onde mora o servidor é informação mais modesta do que saber o que a pessoa vai escolher.

O rascunho de 27 de junho de 2019 explicitou o caso em que a URL do recurso só surge durante a construção da página, embora a origem já seja conhecida. Fazer a negociação antes pode retirar uma espera quando a URL aparecer. A vantagem prevista não é um arquivo invisível chegando por milagre; é o trabalho de conexão iniciado no tempo que antes ficava ocioso.

Há uma conta a pagar por essa aposta. O rascunho de 5 de outubro de 2020 admite que o navegador execute um aperto de mão completo, apenas uma parte, ou nenhum. Também lhe reserva a escolha de quantas conexões abrir por origem. Protocolo, limites gerais, rede e recursos do aparelho entram no cálculo. A página pode mandar convites; quem administra as mesas é o navegador.

Se a origem sugerida nunca for usada, a conexão preparada consumiu recursos sem trazer o pedido. Muitas conexões antecipadas podem competir com transferências exigidas pela página atual. O texto de 2020 ainda diz que trabalho preconnect pendente não deve atrasar o evento load do documento. A reserva do possível visitante não pode suspender o almoço de quem já se sentou.

O histórico de publicação do W3C situa a primeira versão pública em outubro de 2014 e acompanha os rascunhos seguintes. A antiga dupla preconnect e preload abriu caminho para uma divisão mais clara entre resolver um nome, conectar-se, buscar um recurso e preparar uma página. Eram rascunhos, mas a pergunta prática permaneceu: vale iniciar a conversa com um servidor conhecido antes de saber exatamente o que pedir? A resposta cabe ao navegador, uma visita de cada vez.