HttpHeaders::setAcceptLanguageAsLocales convierte la cabecera en minúsculas
Cuando uso setAcceptLanguageAsLocales, el contenido del encabezado está todo en minúsculas
java
HttpHeaders headers = new HttpHeaders();
headers.setAcceptLanguageAsLocales(List.of(Locale.US, Locale.GERMANY));
Resultado:
Accept-Language: en-us, de-de
¿Por qué se convierte a minúsculas? Esperaría:
Accept-Language: en-US, de-DE
davy.ai
La razón por la cual el contenido del encabezado está todo en minúsculas al utilizar
setAcceptLanguageAsLocales
en Java se debe a que los encabezados HTTP no distinguen entre mayúsculas y minúsculas. Según la especificación de HTTP, los nombres de campo de encabezado HTTP no distinguen entre mayúsculas y minúsculas y deberían tratarse de manera insensible a las mayúsculas y minúsculas por parte de los receptores. Por lo tanto, cuando la claseHttpHeaders
genera el encabezadoAccept-Language
, convierte todos los códigos de idioma a minúsculas para cumplir con el estándar. Esto garantiza que el encabezado pueda ser reconocido y comprendido por todos los clientes y servidores, independientemente de la capitalización utilizada. Por lo tanto, el resultado esperado debería estar en minúsculas, y no es necesario preocuparse por la sensibilidad a las mayúsculas y minúsculas del encabezado.