HTTPQUERY
Français

Accept

Utilisation

L’en-tête Accept pilote la négociation de contenu. Le client envoie une liste de types de médias classés par préférence, et le serveur choisit la meilleure correspondance parmi les représentations disponibles pour la ressource demandée.

Les navigateurs définissent cet en-tête automatiquement selon le contexte de la requête. Une requête de navigation demande généralement text/html, tandis qu’un élément image demande les formats d’image courants. Les clients d’API envoient souvent application/json ou application/xml.

Lorsque le serveur ne dispose d’aucune représentation correspondant à l’un des types listés, la réponse attendue est 406 Not Acceptable. En pratique, de nombreux serveurs ignorent cet en-tête et renvoient la représentation par défaut.

Remarque

L’en-tête Accept n’est pas obligatoire. L’omettre implique que le client accepte n’importe quel type de média (/). Les navigateurs envoient / comme solution de repli, et de nombreux serveurs ignorent complètement Accept, renvoyant un Content-Type fixe quelle que soit la préférence du client.

media-type/subtype

Un type de média précis, tel que text/html ou application/json. Le serveur traite le couple type/subtype complet comme une préférence concrète.

media-type/*

Un sous-type générique. image/* indique l’acceptation de tout format d’image, qu’il s’agisse de image/png, image/webp ou image/avif.

*/*

Accepte n’importe quel type de média. Ce caractère générique sert de repli lorsqu’aucun autre type ne correspond.

;q= (valeur de qualité)

Un poids compris entre 0 et 1 exprimant une préférence relative. Plus la valeur est élevée, plus la préférence est forte. En cas d’omission, le poids par défaut est 1.0. Une valeur de 0 signifie que le type n’est pas acceptable.

Exemple

Un navigateur qui demande une page HTML envoie plusieurs types de médias classés par valeur de qualité. Le type le mieux pondéré pris en charge par le serveur l’emporte.

Accept: text/html, application/xhtml+xml, */*;q=0.8

Un client d’API qui demande du JSON avec un repli XML attribue une valeur de qualité plus faible à XML.

Accept: application/json, application/xml;q=0.9

Un agent IA qui demande une page en Markdown pour réduire la consommation de tokens, avec un repli HTML.

Accept: text/markdown, text/html;q=0.9

Agents IA et négociation de contenu

Des fournisseurs de CDN comme Cloudflare convertissent les pages HTML en Markdown à la volée lorsqu’une requête inclut Accept: text/markdown. Cette conversion réduit le nombre de tokens jusqu’à 80 %, faisant de la négociation de contenu une optimisation concrète pour les agents et robots d’exploration fondés sur des LLM.

Un client d’API qui demande des réponses d’erreur structurées utilise application/problem+json en plus du type de contenu habituel. Le serveur renvoie des détails de problème pour les erreurs et du JSON pour les réponses réussies.

Accept: application/problem+json, application/json

Une requête énumérant plusieurs formats texte avec des priorités explicites. text/html porte le poids par défaut de 1.0, text/plain suit à 0.9, tout autre format texte à 0.8, et tout le reste à 0.7.

Accept: text/html, text/plain;q=0.9, text/*;q=0.8, */*;q=0.7

Remarque

Lorsque deux types partagent la même valeur de qualité, le type le plus spécifique l’emporte. Si text/html et text/* portent tous deux un poids de 1.0, le serveur choisit text/html.