Content Negotiation

Architecture 🟡 Mid

Définition

Mécanisme HTTP ou le client et le serveur se mettent d'accord sur le format de la réponse via les headers Accept et Content-Type.

Analogie

Commander dans un restaurant multilangue : tu demandes le menu en français, on te le donne en français.

Exemple de code

// Client
Accept: application/json
// Serveur
app.get('/users', (req, res) => {
  if (req.accepts('json')) res.json(users);
  else if (req.accepts('xml')) res.send(toXml(users));
  else res.status(406).end();
});

Cas d'usage

APIs qui doivent supporter plusieurs formats (JSON, XML, CSV) pour différents clients.

Anti-pattern

Ignorer le header Accept et toujours renvoyer JSON — mauvaise expérience pour les clients non-JSON.
#architecture#interview#api

En entretien

  1. Qu'est-ce que la Content Negotiation en HTTP ?

    C'est le mécanisme par lequel client et serveur se mettent d'accord sur le format de la réponse via les headers Accept et Content-Type, comme commander dans un restaurant multilangue en demandant le menu dans sa langue.

  2. Quel est le piège fréquent dans son implémentation ?

    Ignorer le header Accept et toujours renvoyer du JSON, ce qui dégrade l'expérience des clients qui attendent un autre format.

Fiche mise à jour le 2026-09-27

← → au clavier pour passer d'une fiche à l'autre