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 signifie “q =% f”?

Cela s’appelle un facteur de qualité relative . Il spécifie la langue que l’utilisateur préférerait, sur une échelle de 0 à 1, comme le montre la spécification HTTP / 1.1, §14.4 :

Chaque plage de langues PEUT recevoir une valeur de qualité associée représentant 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 accepterai l’anglais britannique et d’autres types d’anglais.”

C’est ce que l’on appelle le facteur de qualité relatif dans la spécification:

Chaque media-range PEUT être suivi d’un ou plusieurs accept-params, en commençant par le paramètre “q” pour indiquer un facteur de qualité relatif. Le premier paramètre “q” (le cas échéant) sépare le ou les parameters de plage de support des parameters accept. Les facteurs de qualité permettent à l’utilisateur ou à l’agent utilisateur d’indiquer le degré de préférence relatif pour cet intervalle de support, en utilisant l’échelle qvalue de 0 à 1 (section 3.9). La valeur par défaut est q = 1.

L’exemple

 Accept: audio/*; q=0.2, audio/basic 

DEVRAIT être interprété comme “Je préfère l’audio / de base, mais envoyez-moi n’importe quel type audio s’il est le meilleur disponible après une réduction de qualité de 80%.”

Voir également:

  • HTTP / 1.1: Définitions des champs d’en-tête

Les parameters de qualité accept-languages ​​peuvent être compris comme ceci:

en attachant Accept-Language: pl_PL;q=0.8, en_US;q=0.2, tête à la requête que nous communiquons au serveur suivant le message

Serveur, veuillez me fournir une traduction polonaise de ce site, mais veuillez le faire uniquement si sa qualité est >= %80% du facteur de qualité associé. Dans le cas où la qualité est inférieure à <80% , cela ne me dérange pas de recevoir la version anglaise, car cela n’est pas pertinent pour moi puisque je parle anglais de toute façon.

Ainsi, par exemple, en tant que fournisseur de contenu de page Web, nous pourrions introduire l’parsing d’en Accept-Language tête Accept-Language manière à ce que notre site Web s'adresse aux étrangers ne parlant pas du tout (même la traduction traduite serait utile). , disons, a q=0.1 ), où le contenu entièrement traduit a q=0.9 et le contenu entièrement traduit et vérifié par des locuteurs natifs parlant la langue d'origine et le contenu de la langue traduite peut avoir q=0.99 - parce que c'est la seule situation possible du contenu est entièrement transduite)