Accept-Language Ordenar por q
Faz parse do header Accept-Language e ordena por qualidade (q).
Ordenado
—
Ler o Accept-Language na ordem certa
O cabeçalho Accept-Language chega do navegador como uma lista aparentemente arrumada, mas a ordem em que os idiomas aparecem no texto não é a ordem de preferência. Quem manda é o parâmetro q, o fator de qualidade, que vai de 0 a 1. Um item sem q vale 1 por padrão. Então "en;q=0.5,pt-BR" tem português na frente, mesmo escrito depois.
Cole o cabeçalho como ele chega na requisição e a página separa cada entrada, lê o q de cada uma e reordena da maior preferência para a menor, mostrando o valor efetivo ao lado. Serve tanto para conferir o que um navegador de verdade está enviando quanto para entender por que uma negociação de idioma no servidor escolheu o idioma que escolheu.
Um detalhe que costuma confundir: pt-BR e pt são valores diferentes, e um servidor que só compara strings exatas não encontra "pt" quando o cliente pede "pt-BR". A regra de casamento da RFC 4647 manda truncar o rótulo por hífens até achar correspondência — a página ordena, mas quem decide o casamento é a sua aplicação. Um q=0 tem sentido próprio: significa "não me mande isso", não "tanto faz".
Perguntas frequentes
O que acontece quando dois idiomas têm o mesmo q?
O asterisco no fim significa o quê?
Posso confiar nesse cabeçalho para escolher o idioma do site?
Ferramentas Relacionadas
Parse Accept-Charset
Faz parse do header Accept-Charset (em desuso, substituído por UTF-8 padrão).
Parse Accept-Encoding
Faz parse do header Accept-Encoding e identifica codings suportados (gzip, br, deflate, etc.).
ETag Weak vs Strong
Classifica um ETag como weak (W/"...") ou strong. Weak é igualdade semântica, strong é byte-a-byte.
Cache-Control max-age Explicado
Converta o valor de max-age do cabeçalho Cache-Control (em segundos) para um tempo legível em horas e dias. Útil para entender e depurar cache HTTP e CDNs.
Construtor de Requisição HTTP
Monte uma requisição HTTP (URL, método, headers, body) e gere snippets em cURL, fetch, axios, Python requests e Go net/http. Tudo no navegador.
Content-Negotiation Match
Casa Accept do cliente com tipos oferecidos pelo servidor (escolhe o melhor q).