web-dev-qa-db-fra.com

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

183
kolypto

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 le montre le Spécification HTTP/1.1, §14.4 :

Chaque plage de langue PEUT se voir attribuer 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 accepterai l'anglais britannique et d'autres types d'anglais."

231
Tim Cooper

C'est ce qu'on appelle le facteur de qualité relatif dans la spécification:

Chaque gamme de supports PEUT être suivie par un ou plusieurs paramètres acceptés, 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 paramètres de la plage de supports des paramètres accept-paramètres. Les facteurs de qualité permettent à l'utilisateur ou à l'agent utilisateur d'indiquer le degré de préférence relatif pour cette plage de supports, à l'aide de l'échelle de valeur q 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/base, mais envoyez-moi n'importe quel type d'audio s'il est le meilleur disponible après une réduction de qualité de 80%."

Voir également:

35

Le paramètre de qualité d’Accept-languages ​​peut être compris comme suit:

en attachant l'en-tête Accept-Language: pl_PL;q=0.8, en_US;q=0.2, à la demande, nous le communiquons au serveur après le message

Serveur, veuillez me fournir la traduction polonaise de ce site Web, mais veuillez le faire uniquement si sa qualité est d'un facteur de qualité lié à >= %80%. Dans le cas où la qualité est de <80% - la version anglaise ne me dérange pas, car elle n’a aucune pertinence pour moi puisque je parle de toute façon anglais.

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

4
test30