Seule une partie de la ressource est renvoyée.
Quand l’utiliser
Réponse à une requête Range, pour le streaming vidéo ou les téléchargements avec reprise.
Bon à savoir
Les serveurs n’envoient 206 que lorsque le client le demande avec un en-tête Range, comme Range: bytes=0-1023, et que le serveur prend en charge les plages, ce qu’il annonce avec Accept-Ranges: bytes. La réponse porte Content-Range: bytes 0-1023/146515 avec la taille totale. Safari et iOS exigent la prise en charge des plages pour la vidéo : si votre serveur ignore Range et renvoie 200, la lecture des MP4 échoue souvent purement et simplement.
Les requêtes au-delà de la fin du fichier reçoivent un 416. Plusieurs plages dans une même requête reviennent en multipart/byteranges. Les plages portent sur les octets encodés, c’est pourquoi les serveurs évitent généralement gzip pour les médias. Derrière un CDN, vérifiez que les requêtes partielles sont mises en cache et servies correctement, et non transmises à l’origine à chaque fois. Testez avec curl -r 0-99 -i, et les téléchargements reprenables avec curl -C - -O.
Succès (2xx)
Les codes 2xx indiquent un succès : le serveur a reçu, compris et accepté la requête.
À quoi ça ressemble
HTTP/1.1 206 Partial ContentComment l’envoyer
| Node.js / Express | res.status(206).end() |
|---|---|
| Python / Flask | return '', 206 |
| nginx | return 206; |
Comment le vérifier
curl -s -o /dev/null -w "%{http_code}\n" https://example.com/