Accept-Language Reduction es una iniciativa para reducir la creación de huellas digitales pasiva
al reducir las preferencias de idioma del usuario en la
Accept-Language
y se enviará únicamente el idioma de preferencia del usuario (solo uno).
Comienza con Chrome 109
Beta, abriremos
la prueba de origen
para la reducción de idioma de aceptación, lo que permite que los sitios acepten recibir la
Encabezado Accept-Language
. Esto permitirá que los sitios descubran y solucionen problemas
antes de que la reducción de Accept-Language
se convierta en el comportamiento predeterminado en Chrome, de una
en una versión futura. Para probar la función antes de su lanzamiento a población estable,
asegúrate de habilitarlas y probarlas antes de la fecha de lanzamiento de Chrome 109 (actualmente,
programado para el 10 de enero de 2023).
Consulta los ejemplos del encabezado Accept-Language
antes y después de la reducción a continuación.
Accept-Language: en-GB,en;q=0.9,de;q=0.8,fr;q=0.7
Accept-Language: en-GB
A continuación, se muestra una descripción general de la prueba de origen y lo que sucederá. Puedes compartir tu comentarios sobre este cambio o cualquier problema que encuentres durante la prueba de origen en la sección Accept-Language Reduction GitHub Cloud Storage.
¿Qué es Accept-Language?
El Aceptar idioma de ese tipo se comparte en cada solicitud HTTP y se expone en JavaScript a todos recursos cargados por el navegador. Actualmente, contiene todos los datos idiomas preferidos.
¿Por qué se reducirá Accept-Language?
Accept-Language Reduction es una iniciativa para reducir la creación de huellas digitales pasiva plataformas de Chrome.
Actualmente, el encabezado Accept-Language
se comparte de forma predeterminada en todas las solicitudes HTTP
y se expone en JavaScript a todos los recursos que carga el navegador. Integra
contiene todas las preferencias de idioma del usuario. En lugar de que el navegador envíe
la lista completa de idiomas que el usuario configuró en caso de que los sitios deseen
proporcionan contenido multilingüe, presentamos una nueva manera para que los sitios indiquen
contenido multilingüe, y el navegador tendrá la responsabilidad de usar el idioma
la negociación y mostrar el idioma preferido.
Otro motivo es que es posible que muchos sitios no usen los encabezados Accept-Language
.
para la negociación de idiomas (por ejemplo, una
indica que solo el 7.2% del
de los 10,000 sitios principales usan Accept-Language
). El modo Incógnito de Chrome ya redujo la
Accept-Language
a uno.
¿Qué significa esto para los desarrolladores web?
Los sitios que dependen de Accept-Language
para negociar el idioma deben
prepárate para recibir una reducción de Accept-Language
y considera participar en el
prueba de origen. Los valores reducidos de Accept-Language
aparecerán en la siguiente ubicación:
- El encabezado de la solicitud HTTP
Accept-Language
- El método get de JavaScript
navigator.languages
.
El navegador se encargará de la negociación del idioma para seleccionar el
el idioma preferido del usuario para enviar a los sitios. Para que esto suceda, los sitios deben
agregar dos encabezados
Variants
(un encabezado nuevo indica los sitios que admiten idiomas) Accept-Language
y
Content-Language
en
de respuesta (consulta el ejemplo detallado a continuación).
Actualmente, los planes reducidos de Accept-Language
no incluyen iOS ni WebView.
y esas plataformas seguirán logrando que los usuarios lista completa de Accept-Language
.
Se planea admitir estas plataformas más adelante.
Prueba de origen para la reducción de Accept-Language
Una prueba de origen requiere que el sitio participante proporcione un token en su
que le indica al navegador que habilite la prueba especificada. Sin embargo,
significa que, en la solicitud inicial del navegador al sitio, no tiene forma de saber
si el sitio participa en una prueba de origen. Esto significa que la
de una sesión no enviará el Accept-Language header
reducido.
Las solicitudes de subrecursos de esa página, tanto de origen igual como de origen cruzado,
recibir el encabezado Accept-Language
reducido Navegaciones posteriores del mismo origen
también recibirá el encabezado Accept-Language
reducido. Navegaciones de origen cruzado
volverá a enviar el encabezado completo, mientras que las solicitudes de origen cruzado dentro del
página (como las solicitudes de iframe de terceros) enviarán la Accept-Language
reducida.
si la solicitud de marco de nivel superior tiene un token de prueba de origen válido.
Esto es similar a la prueba de origen de reducción de usuario-agente Si quieres obtener más información sobre la implementación interna de Chromium, obtén más información en Implementación de la reducción del encabezado HTTP Accept-Language.
Participar en la prueba de origen de la reducción de idioma para aceptar
Puedes leer más orientación en Comienza con las pruebas de origen de Chrome, pero los pasos esenciales se muestran a continuación.
Paso 1
Para registrarse en la prueba de origen y obtener un token para sus dominios, siga estos pasos: visita la Prueba para reducir la aceptación del idioma .
Paso 2
Actualiza los encabezados de respuesta HTTP:
- Agrega
Origin-Trial: <ORIGIN TRIAL TOKEN>
a tu respuesta HTTP encabezado, donde <ORIGIN TRIAL TOKEN
> contiene el token que obtuviste cuando registrarse en la prueba de origen. - Agrega
Content-Language
a tu encabezado de respuesta HTTP para indicar los idiomas dirigidos al público. - Agrega
Variants
a tu encabezado de respuesta HTTP para indicar sitios idiomas admitidos. - [Opcional] Agrega
Vary: Accept-Language
a tu respuesta HTTP a fin de crear una clave de caché para la negociación de contenido. - La configuración de esos encabezados solo activará el idioma del navegador. la negociación (un posible reinicio de la solicitud inicial) para la origen. Para que los sitios muestren la representación del idioma correcta para los usuarios, también debe actualizar los sitios que envían el contenido según el encabezado Accept-Language del usuario (consulta el ejemplo a continuación).
Paso 3
Carga tu sitio web en Chrome M109 beta (o una versión posterior) y comienza a recibir el se redujo la cadena Accept-Language.
Envía cualquier problema o comentario al GitHub de Accept-Language Reduction. Cloud Storage.
Demostración
Para ver la demostración de un sitio multilingüe que aceptó la prueba de origen (junto con el código fuente) consulta https://reduce-accept-language.glitch.me/.
Para ver una demostración de cómo habilitar o inhabilitar la prueba de origen (junto con el código fuente) consulta https://reduce-accept-language-ot.glitch.me/.
Por ejemplo, example.com
admite ja
(japonés) y en
(inglés). R
puede ser la siguiente:
GET / HTTP/1.1
Host: example.com
Accept-Language: en
El sitio sabe que el usuario prefiere contenido en inglés, ya que se basa en la Accept-language. Los encabezados de respuesta pueden incluir lo siguiente:
HTTP/1.1 200 OK
Content-Language: en
Variants: Accept-Language=(en ja)
Origin-Token: a-valid-token
Si el usuario tiene preferencia por el contenido en japonés, la solicitud será la siguiente:
GET / HTTP/1.1
Host: example.com
Accept-Language: ja
En este caso, el sitio responde con encabezados para el contenido en japonés:
HTTP/1.1 200 OK
Content-Language: ja
Variants: Accept-Language=(en ja)
Origin-Token: a-valid-token
En el servidor, el sitio puede buscar soporte de lenguaje específico, pero y puede volver a un valor predeterminado si no se detecta compatibilidad:
if(accept_language == 'ja') {
res.response('ja_page')
}
else {
res.response('en_page')
}
En el ejemplo anterior, example.com
responde en
o ja
según la
Es un valor de Accept-Language
, que se establece de forma predeterminada en en
si no hay coincidencia. En este caso, el
El sitio también puede redireccionar a las páginas en los idiomas correspondientes, ya sea /en
o
/ja
según el valor Accept-Language
. Consulta ejemplos detallados relacionados con
redireccionamientos activados
documento de implementación.
Asistencia para pruebas de origen de terceros
Por el momento, no se admite el registro de tus dominios como un
de la prueba.
Si operas un servicio que se implementa como un subrecurso en todos los orígenes
(como la publicación de anuncios o las estadísticas), solo recibirás
Encabezado Accept-Language
si el sitio de nivel superior participa en el origen
de Google Cloud.
Valida que la prueba de origen funcione
La guía para solución de problemas de las pruebas de origen de Chrome proporciona una lista de tareas completa para garantizar que tu token se haya configurado correctamente.
Configura varios idiomas y su prioridad desde
chrome://settings/languages
o Configuración → Idiomas. Considera la posibilidad de seleccionar
idioma que tu sitio no admite y moverlo al principio de la lista
para asegurarse de que se active
la renegociación adicional.
Deberían verse los encabezados de la respuesta inicial que contienen el token de prueba de origen como:

Los encabezados de solicitud posteriores que contienen la Accept-Language reducido se ven de la siguiente manera:

Cómo dejar de participar en la prueba de origen
En cualquier momento durante la prueba, puede dejar de participar y recibir la lista completa de Accept-Language del usuario. Para dejar de participar, sigue estos pasos:
- Quita el encabezado
Origin-Trial
de Accept-Language Reduction a partir de tu respuesta HTTP. - [Opcional] Quita el encabezado
Variants
que se agregó para habilitar el prueba de origen en tu respuesta HTTP si no quieres enviar este encabezado. También puedes usarVariants
con un valor vacío para lograr esto. - [Opcional] Quita el encabezado
Content-Language
que se agregó a habilita la prueba de origen en tu respuesta HTTP si no te interesa enviando este encabezado.
Duración de la prueba de origen
La prueba de origen para la reducción de idioma de Accept-Language se realizará durante al menos seis meses, lo que equivale a unos seis hitos de Chrome. Aparecerá la prueba de origen la versión M109 y la versión M114 (es decir, la última versión de Chrome que tiene la versión disponibles). En ese momento, Chrome evaluará los comentarios desde el origen de prueba antes de continuar con el envío de la cadena de Accept-Language reducida en un En etapas: primero, reduzca el encabezado HTTP Accept-Language y, luego, reduzca Interfaz de JS. Si un sitio necesita más tiempo para la prueba, puede habilitar una publicación baja, lo que les permitiría acceder a todas Accept-Language durante al menos seis meses más. Publicaremos más detalles sobre la prueba de baja cuando esté lista.
Compartir comentarios
Envía cualquier problema o comentario al GitHub de Accept-Language Reduction. Cloud Storage.