Por qué la salida de la VPN y el idioma del navegador no coinciden
Accept-Language pide un idioma de respuesta; la VPN cambia la dirección de origen. Cuando un sitio parece localizado, tres entradas deciden cuál ganó.
Abra las herramientas de desarrollador, cargue la página y lea las cabeceras de la solicitud antes de concluir nada sobre la VPN. Normalmente encontrará una línea Accept-Language que pide un conjunto concreto de idiomas, y esa línea proviene de la configuración del navegador, no de su dirección de salida. Un hablante de francés en una salida de Tokio sigue enviando francés, y un sitio que responde en francés está respondiendo a la cabecera. El túnel no filtra solo porque la página llegue en un idioma conocido.
Lea la cabecera antes que nada
En un navegador de escritorio, abra el panel Red, recargue, haga clic en la solicitud del documento y mire bajo las cabeceras de solicitud. Desde un terminal puede ver lo mismo sin navegador, y puede sobrescribir el valor para probar el comportamiento del 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
Ahora el cuerpo está en el disco, así que la comparación trata de la página y no de una cabecera que quizá nunca se envíe. Fíjese en el atributo lang de la etiqueta html y en el texto visible, porque Content-Language es opcional y muchos servidores lo omiten. Por eso un sitio que cambia toda la página del inglés al francés en la misma URL puede parecer inalterado en una comparación solo de cabeceras. Si el idioma del documento sigue a la cabecera mientras la salida permanece fija, la cabecera era la entrada decisiva y la VPN no tiene nada que ver con esa observación.
Use un segundo perfil de navegador en lugar del selector de idioma del propio sitio para esta prueba. Un selector normalmente escribe una cookie, que es otra entrada, y acabará midiendo la cookie en lugar de la cabecera.
Qué significan los valores q y qué no
RFC 9110, sección 12.5.4, define Accept-Language como una lista de idiomas naturales preferidos para la respuesta. Cada entrada puede llevar un peso de 0 a 1, un rango sin peso tiene peso 1, y un peso de 0 marca un idioma como no aceptable. Eso es un orden de preferencia y nada más.
El valor no es un informe de ubicación, ni una puntuación de confianza, ni una identidad. Un servidor es libre de ignorarlo, de servir la única traducción que tiene o de dejar que gane una redirección por país. La negociación de contenido es una decisión del servidor, y la cabecera es una entrada para esa decisión, no una orden.
Esta es la parte que la gente pasa por alto cuando trata una página localizada como una prueba de ubicación. La cabecera declara qué idiomas prefiere leer la persona, y una preferencia puede viajar a cualquier parte.
Tres entradas deciden el idioma que realmente recibe
Aíslelas de una en una, porque desde fuera no ve cuál ganó:
- La cabecera. Pruebe con un segundo perfil configurado con una lista de idiomas distinta y observe cómo cambia la página mientras todo lo demás se mantiene constante.
- Una elección guardada. Pruebe en una ventana privada sin cookies o borre el almacenamiento del sitio. La configuración de la cuenta y las entradas de localStorage pueden fijar un idioma durante meses.
- Una URL o una redirección. Pruebe solicitando la ruta de idioma explícita, como
/fr/, y observando los códigos de estado de una redirección basada en la dirección de origen.
Ejecute las tres pruebas en ese orden y anote cuál movió el resultado. Una sola carga de página que cambia de idioma después de activar la VPN es una prueba débil, porque tanto una redirección como una cookie en caché pueden producir esa impresión.
Qué cambia la VPN y qué no
El túnel cambia la dirección de origen que ve un servidor y, con ella, todo lo que el servidor deduce de la geolocalización por IP. No reescribe las preferencias de idioma del navegador, no borra una configuración guardada ni cambia la URL que escribió. Esas entradas se quedan exactamente donde estaban, así que una página puede conservar su idioma antiguo después de que se mueva la salida.
La geolocalización añade su propio ruido. Las bases de datos de direcciones no coinciden entre sí, y una salida registrada en un país puede asignarse a otro, lo que hace que una redirección por país parezca equivocada por motivos que no tienen nada que ver con su navegador.
Una comprobación rápida las separa: solicite la página de nuevo, anote la dirección que presenta y luego compare el idioma de la respuesta con su lista de cabeceras. Si el idioma coincide con su lista y no con el país de salida, la cabecera era la entrada decisiva y no hay nada que corregir en el túnel.
Qué demuestra una página localizada y qué no
Aquí hay un punto real de privacidad, y es más pequeño que el que la gente suele plantear. Una lista completa de preferencias de idioma es una entrada de huella digital y puede revelar algo sobre quién es usted o qué lee. Es una revelación genuina de preferencia, y no es lo mismo que demostrar que el tráfico escapó del túnel.
Una página localizada no es un indicador de fuga. Si de verdad quiere probar una fuga, compruebe la dirección de salida que ve el sitio, la ruta del resolutor usada para las consultas de nombres y los candidatos que expone una pila WebRTC. Esas pruebas responden la pregunta que el idioma de la página no puede.
La próxima vez que un sitio parezca conocer su país, abra primero las cabeceras de la solicitud. Si el idioma de la respuesta coincide con la lista de su navegador, no se filtró nada, y la capa que debe mirar es la que tiene delante.