Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Uma coisa que me confundiu maciçamente quando primeiro tentei entender isso, é que nesse contexto a vírgula é um separador de nível mais alto do que o ponto e vírgula, ao contrário da prática normal.
Isso quer dizer que isso deve ser dividido assim:
Content Type Preference Level
====================================================
1. text/html unspecified (implies 1)
2. application/xhtml+xml unspecified (implies 1)
3. application/xml 0.9
4. */* (anything else) 0.8
Eu estava lendo a corda, naturalmente na minha cabeça, dividindo-a primeiro no ponto-e-vírgula e depois nas vírgulas, depois lendo a explicação e não fazendo nenhum sentido. Por isso, pensei que seria útil explicar isso explicitamente.