web-dev-qa-db-fra.com

HTTP Accept En-tête sens

Lorsque l'en-tête de demande Accepter d'un navigateur dit quelque chose comme ce qui suit:

Accept: application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5

Cela signifie-t-il que application/xml, application/xhtml+xml et text/html ont tous un paramètre de qualité de 0.9?

Ou cela signifie-t-il que application/xml et application/xhtml+xml ont la valeur par défaut (q=1) et que text/html a le paramètre q=0.9?

Je suppose que c'était le cas, mais espérais que quelqu'un le savait plus clairement.

43
mckamey

Non, si le paramètre qualité est manquant, q=1.0 est supposé:

Chaque gamme de supports PEUT être suivie d’un ou de plusieurs paramètres d’acceptation, en commençant par le paramètre "q" permettant d’indiquer un facteur de qualité relatif [...] à l’aide de l’échelle de valeurs q allant de 0 à 1 (paragraphe 3.9). La valeur par défaut est q = 1.

Donc, la valeur donnée doit être interprétée comme suit: “application/xml, application/xhtml + xml et image/png sont les types de média préférés, mais s'ils n'existent pas , puis envoyez l'entité text/html (text/html;q=0.9), et si elle n'existe pas, envoyez l'entité text/plain (text/plain;q=0.8), et si elle n'existe pas, envoyez une entité avec tout autre type de support (*/*;q=0.5). ”

43
Gumbo

Verbalement, cela serait interprété comme "application/xml, application/xhtml + xml et image/png sont les types de supports préférés, mais s’ils n'existent pas, envoyez l’entité text/html, et si elle n’existe pas, envoyez l'entité text/plain, si elle n'existe toujours pas, envoie une entité avec tout autre type de média. "

0
周汉成