Resumo

  • Uma resposta 103 apresenta campos que provavelmente aparecerão depois. O navegador pode começar um preload, mas a pista não substitui os campos finais nem muda o processamento do resultado definitivo.
  • Origem ou cache sugerem; o cliente decide se investe; a resposta final define a navegação; e o recurso indicado ainda precisa passar por DNS, conexão, TLS, políticas, cache e uso real.

Uma navegação chega ao aplicativo. O esqueleto visual é conhecido, mas o estado da sessão ainda pode mandar o usuário para login. No CDN, os metadados da resposta anterior dizem que shell.css era essencial. Esperar custa uma ida e volta. Agir pode baixar um arquivo para uma página que jamais será produzida.

RFC 8297 resolve o dilema sem fingir certeza. O servidor pode enviar 103 Early Hints com um campo Link e continuar preparando a resposta final. Se o cliente reconhece rel=preload, pode iniciar a busca durante esse intervalo.

A palavra hints limita a pretensão. O campo é provável, não definitivo. A pista não declara sucesso, não garante repetição e não transforma uma URL em conteúdo autorizado. Ela antecipa uma oportunidade, não a verdade.

A mensagem intermediária não encerra a solicitação

RFC 9110 coloca 103 na classe informativa 1xx. Uma solicitação pode receber várias respostas intermediárias e depois uma resposta final. Uma 1xx termina após os campos e não contém corpo ou trailers. O agente de usuário pode ignorar uma resposta informativa inesperada.

RFC 8297 determina que a avaliação precoce só sirva à otimização. Ela não pode alterar a forma de processar o resultado final. Se o aplicativo envia 302, o cliente segue as regras de redirecionamento; uma pista anterior não cria uma página 200 imaginária.

Ausência também não é promessa. O servidor pode listar apenas o que conhece cedo. Um campo omitido pode aparecer depois. E o conjunto previsto pode mudar: vários 103 podem acrescentar candidatos, enquanto a resposta final preserva alguns e troca outros.

Essa divergência não é defeito. Sem tolerância à mudança, só seria seguro enviar o campo quando já não fosse antecipado.

Autoridades separadas em poucos milissegundos

A origem continua responsável por status e campos finais. Um intermediário, porém, também pode criar uma pista. RFC 8297 descreve um cache que gera 103 a partir de cabeçalhos antigos enquanto revalida e depois encaminha o que chega da origem.

O navegador controla a especulação. Pode ignorar, usar cache, impor orçamento, atrasar uma conexão ou abandonar a reutilização após um redirecionamento. Link informa uma relação; não governa o escalonador local.

A resposta final define o destino da navegação. Erro, redirecionamento e novos campos continuam soberanos. O recurso anunciado ainda tem um resultado próprio: resolução, certificado, credenciais, status, tipo, integridade e regras de cache precisam produzir um objeto utilizável.

RFC 8288 descreve um link como contexto, tipo de relação, alvo e atributos. Essa afirmação não autentica o alvo nem garante o resultado de acessá-lo.

O navegador aplica um contrato mais estreito

O padrão HTML usa Early Hints em navegações. O algoritmo atual trata a primeira pista precoce e a descarta se depois houver redirecionamento para outra origem.

Nesse estágio, apenas as, crossorigin, integrity e type integram o processamento do preload. Outros atributos dependem de um Document existente. As pistas vêm antes dos Links finais e dos elementos da página, mas ordem temporal não é autoridade superior.

Uma política CSP precoce pode limitar a requisição especulativa. A política final pode ser mais restritiva e impedir o documento de usar uma resposta que já atravessou a rede. O custo ocorreu sem comprar permissão.

O padrão Fetch chama o processamento de 103 e continua esperando a resposta final. O adiantamento continua pertencendo à mesma solicitação.

Cache antigo é previsão, não estado atual

Um Link de ontem pode continuar correto por semanas. Também pode perder validade depois de uma implantação, personalização ou mudança de rota. Gerar 103 com esse dado não é errado por si só; escondê-lo como se viesse do conhecimento atual da aplicação é que destrói a auditoria.

Registros precisam identificar se a pista veio do aplicativo, de regra no edge ou de metadados expirados. A lista precoce e a final devem ser preservadas separadamente. Se duas camadas emitem candidatos, divergência e duplicação são fatos operacionais.

O cache oferece velocidade. O cliente decide o preço da aposta. A origem conclui o estado. Nenhuma dessas tarefas absorve as demais.

O significado é provisório; o gasto, não

Uma pista ruim normalmente não altera o significado final, mas pode abrir conexão, consumir rádio e bateria, disputar janela de congestionamento, pressionar um terceiro e revelar interesse por uma URL. Depois que os pacotes saem, o redirecionamento não os desfaz.

Por isso a métrica precisa ser trabalho precoce reutilizado. Ligue recepção de 103, início antecipado, resultado de cache ou rede, comparação com a resposta final, aprovação pelas políticas e uso no documento. Mostre ganho de latência junto com bytes e solicitações concluídas sem utilidade.

Compatibilidade é outra prova. RFC 8297 alerta que um cliente HTTP/1.1 que trate 103 como final pode enquadrar incorretamente mensagens seguintes na conexão persistente e provocar exposição entre origens. O servidor pode evitar 103 em HTTP/1.1 quando não conhece o cliente. HTTP/2 reduz esse risco específico, sem tornar a previsão boa.

O registro da IANA fixa o nome Early Hints para 103. Não demonstra encaminhamento, ação do navegador, reutilização ou melhora percebida.

Os princípios de Lu Heng sobre especificação mínima e decisões futuras locais descrevem bem o desenho. A camada comum diz apenas que os campos são provisórios e haverá resposta final. Cada implementação decide se adota a otimização. A primazia do código em operação exige evidência do fio, da ação e do resultado.

Desativar 103 deve retirar apenas velocidade. Se retirar correção, a aplicação transformou uma pista opcional em dependência sem autoridade protocolar.