Qu'est-ce que q = 0.5 dans les en-têtes Accept* HTTP?
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-us,en;q=0.5
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Que signifient ces 'q= % f'?
3 réponses
C'est ce qu'on appelle un facteur de qualité relative. Il spécifie la langue que l'utilisateur préférerait, sur une échelle de 0 à 1, comme on peut le voir à partir de la spécification HTTP/1.1 , §14.4:
Chaque plage de langues peut recevoir une valeur de qualité associée qui représente une estimation de la préférence de l'utilisateur pour les langues spécifiées par cette plage. La valeur de qualité par défaut est "q = 1". Par exemple,
Accept-Language: da, en-gb;q=0.8, en;q=0.7
Signifierait: "je préfère le danois, mais accepte Anglais britannique et d'autres types d'anglais."
Il est appelé le facteur de qualité relative dans la spécification:
Chaque plage de média peut être suivie d'un ou plusieurs paramètres accept, commençant par le paramètre" q " pour indiquer une qualité relative facteur. Le premier paramètre" q " (le cas échéant) sépare la plage de média paramètre(s) de l'accepter-params. Les facteurs de qualité permettent à l'utilisateur ou agent utilisateur pour indiquer le degré relatif de préférence pour cela médias-gamme, en utilisant la qvalue échelle de 0 à 1 (section 3.9). Le la valeur par défaut est q=1.
...
L'exemple
Accept: audio/*; q=0.2, audio/basic
Doit être interprété comme "je préfère audio / basic, mais envoyez-moi n'importe quel type audio si c'est le meilleur disponible après une note de 80% en qualité."
Voir aussi:
Le paramètre de qualité Accept-languages peut être compris comme ceci:
En attachant l'en-tête Accept-Language: pl_PL;q=0.8, en_US;q=0.2,
à la requête, nous communiquons au serveur le message suivant
Serveur, veuillez me fournir une traduction polonaise de ce site web, mais veuillez le faire uniquement si sa qualité est
>= %80%
de facteur de qualité connexe. Dans le cas où la qualité est<80%
- cela ne me dérange pas d'obtenir la version anglaise, car ce n'est pas pertinent pour moi puisque je parle anglais de toute façon.
Ainsi, par exemple, comme un fournisseur de contenu de page web que nous pourrions introduire Accept-Language
Analyse d'en-tête de telle sorte que notre site web est adapté pour les étrangers ne parlant pas l'anglais du tout (alors même la navigation traduite serait utile (pages ayant traduit seulement la navigation, disons, ont q=0.1
), où le contenu entièrement traduit A {[5] } et le contenu entièrement traduit situation possible lorsque le sens du contenu est entièrement transduit)