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'?

169
demandé sur kolypto 2011-12-18 20:04:15

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."

207
répondu Tim Cooper 2011-12-18 16:06:23

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:

33
répondu Sebastian Paaske Tørholm 2011-12-18 16:06:58

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)

2
répondu test30 2017-11-30 12:22:32