Summary
- O RFC 2068, de janeiro de 1997, documentou
Accept-Language, campo em que o navegador podia listar idiomas aceitáveis com valores de preferência. - Ao escolher uma versão a partir desse campo, o servidor podia indicar
Vary: Accept-Language; o cache teria então de comparar a preferência antes de reaproveitar a resposta armazenada.
O exemplo do RFC 2068 de janeiro de 1997 parece uma comanda: dinamarquês em primeiro lugar, inglês britânico depois, outras formas de inglês em seguida. Os valores q expressam a preferência relativa. O navegador entrega a lista junto com a URL, e o servidor pode escolher uma edição já na primeira resposta. A pessoa não precisa começar a visita preenchendo um formulário de idioma.
O problema chega com o segundo leitor. Os dois pedem /news, mas um navegador prefere dinamarquês e o outro, francês. O servidor pode enviar páginas diferentes para a mesma URL. Um cache comum que guarda apenas o endereço tem uma cópia pronta e uma memória incompleta. Sem o motivo da escolha, corre o risco de oferecer a edição anterior ao visitante seguinte.
O campo Vary acrescenta essa memória. O RFC 9110, que define a semântica HTTP atual, explica que Vary: accept-language aponta para a informação da requisição que pode ter influenciado a versão servida. O RFC 9111 sobre cache estabelece o passo seguinte: se o campo indicado não corresponde ao da requisição original, a resposta armazenada não pode ser usada sem revalidação. O cache pode guardar a edição dinamarquesa; precisa guardar também o pedido a que ela respondeu.
O próprio RFC 9111 descreve uma falha sem glamour: esquecer Vary na resposta padrão. Nesse caso, essa versão pode continuar sendo escolhida para pedidos posteriores, embora exista outra mais adequada. O atendente é rápido, a etiqueta está ausente, e o jornal chega à mesa errada. Nenhuma tradução precisa estar incorreta para que a experiência dê errado.
Há ainda o Content-Language, que caracteriza o público linguístico da representação entregue. RFC 9110 separa as funções: Accept-Language informa a preferência do navegador, Content-Language descreve a edição recebida e Vary orienta quem vai reutilizá-la. Três campos ajudam a localizar um erro em três etapas distintas.
O navegador, afinal, pode não ser do leitor. O guia do W3C para negociação de idiomas usa o caso de um navegador emprestado, configurado para outra pessoa, e recomenda controles visíveis para mudar de idioma. Já em 1997, o RFC notava que uma lista completa de preferências enviada em toda requisição poderia revelar mais do que o usuário desejava; o padrão atual exige controle sobre essa lista.
O serviço só funciona bem quando cada papel fica claro: o navegador sugere, o servidor escolhe, o cache guarda a comanda e o leitor pode pedir outro prato. Uma URL sozinha nunca contou a história inteira da escolha.
Briefing para membros
Contexto aprofundado do perfil
Faça login com o nível de assinatura correto para desbloquear o briefing completo e as notas das fontes.
Apenas para Strategic Circle
Strategic Circle
Aberto a todos os leitores. Desbloqueie Briefings de perfil após se inscrever e fazer login.
Junte-se ao Strategic CircleSomente para Leadership Alliance
Leadership Alliance
Para proprietários e gestores qualificados de ativos de PI; faça login para desbloquear os briefings da Leadership Alliance.
Junte-se ao Leadership Alliance





