Por que a saída da VPN e a lingua do navegador non coinciden
Accept-Language pide unha lingua de resposta; a VPN cambia o enderezo de orixe. Cando un sitio parece localizado, tres entradas deciden cal gañou.
Abra as ferramentas de desenvolvemento, cargue a páxina e lea as cabeceiras da solicitude antes de concluír nada sobre a VPN. Normalmente atopará unha liña Accept-Language que pide un conxunto concreto de linguas, e esa liña provén da configuración do navegador, non do enderezo de saída. Un falante de francés nunha saída de Tokio segue enviando francés, e un sitio que responde en francés está a responder á cabeceira. O túnel non filtra só porque a páxina chegue nunha lingua coñecida.
Lea a cabeceira antes que nada
Nun navegador de escritorio, abra o panel Rede, recargue, faga clic na solicitude do documento e mire baixo as cabeceiras de solicitude. Desde un terminal pode ver o mesmo sen navegador, e pode sobrescribir o valor para probar o comportamento do sitio:
curl -sS -D /tmp/h1 -o /tmp/b1 https://example.com
curl -sS -D /tmp/h2 -o /tmp/b2 -H 'Accept-Language: fr,en;q=0.6' https://example.com
grep -o 'lang="[^"]*"' /tmp/b1 /tmp/b2
diff /tmp/b1 /tmp/b2 | head -40
Agora o corpo está no disco, así que a comparación trata da páxina e non dunha cabeceira que quizais nunca se envíe. Fíxese no atributo lang da etiqueta html e no texto visible, porque Content-Language é opcional e moitos servidores omíteno. Por iso un sitio que cambia toda a páxina do inglés ao francés na mesma URL pode parecer inalterado nunha comparación só de cabeceiras. Se a lingua do documento segue a cabeceira mentres a saída permanece fixa, a cabeceira era a entrada decisiva e a VPN non ten nada que ver con esa observación.
Use un segundo perfil de navegador en lugar do selector de lingua do propio sitio para esta proba. Un selector normalmente escribe unha cookie, que é outra entrada, e acabará medindo a cookie en lugar da cabeceira.
Que significan os valores q e que non
RFC 9110, sección 12.5.4, define Accept-Language como unha lista de linguas naturais preferidas para a resposta. Cada entrada pode levar un peso de 0 a 1, un rango sen peso ten peso 1, e un peso de 0 marca unha lingua como non aceptable. Iso é unha orde de preferencia e nada máis.
O valor non é un informe de localización, nin unha puntuación de confianza, nin unha identidade. Un servidor é libre de ignoralo, de servir a única tradución que ten ou de deixar que gañe unha redirección por país. A negociación de contido é unha decisión do servidor, e a cabeceira é unha entrada para esa decisión, non unha orde.
Esta é a parte que a xente pasa por alto cando trata unha páxina localizada como unha proba de localización. A cabeceira declara que linguas prefire ler a persoa, e unha preferencia pode viaxar a calquera parte.
Tres entradas deciden a lingua que realmente recibe
Aílleas unha a unha, porque desde fóra non ve cal gañou:
- A cabeceira. Probe cun segundo perfil configurado cunha lista de linguas distinta e observe como cambia a páxina mentres todo o demais se mantén constante.
- Unha escolla gardada. Probe nunha xanela privada sen cookies ou borre o almacenamento do sitio. A configuración da conta e as entradas de localStorage poden fixar unha lingua durante meses.
- Un URL ou unha redirección. Probe solicitando a ruta de lingua explícita, como
/fr/, e observando os códigos de estado dunha redirección baseada no enderezo de orixe.
Execute as tres probas nesa orde e anote cal moveu o resultado. Unha soa carga de páxina que cambia de lingua despois de activar a VPN é unha proba feble, porque tanto unha redirección como unha cookie en caché poden producir esa impresión.
Que cambia a VPN e que non
O túnel cambia o enderezo de orixe que ve un servidor e, con el, todo o que o servidor deduce da xeolocalización por IP. Non reescribe as preferencias de lingua do navegador, non borra unha configuración gardada nin cambia o URL que escribiu. Esas entradas quedan exactamente onde estaban, así que unha páxina pode conservar a súa lingua antiga despois de que se mova a saída.
A xeolocalización engade o seu propio ruído. As bases de datos de enderezos non coinciden entre si, e unha saída rexistrada nun país pode asignarse a outro, o que fai que unha redirección por país pareza equivocada por motivos que non teñen nada que ver co seu navegador.
Unha comprobación rápida sepáraas: solicite a páxina de novo, anote o enderezo que presenta e despois compare a lingua da resposta coa súa lista de cabeceiras. Se a lingua coincide coa súa lista e non co país de saída, a cabeceira era a entrada decisiva e non hai nada que corrixir no túnel.
Que demostra unha páxina localizada e que non
Aquí hai un punto real de privacidade, e é máis pequeno que o que a xente adoita expor. Unha lista completa de preferencias de lingua é unha entrada de pegada dixital e pode revelar algo sobre quen é vostede ou que le. É unha revelación xenuína de preferencia, e non é o mesmo que demostrar que o tráfico escapou do túnel.
Unha páxina localizada non é un indicador de fuga. Se de verdade quere probar unha fuga, comprobe o enderezo de saída que ve o sitio, a ruta do resolutor usada para as consultas de nomes e os candidatos que expón unha pila WebRTC. Esas probas responden a pregunta que a lingua da páxina non pode.
A próxima vez que un sitio pareza coñecer o seu país, abra primeiro as cabeceiras da solicitude. Se a lingua da resposta coincide coa lista do seu navegador, non se filtrou nada, e a capa que debe mirar é a que ten diante.