La plage d’octets demandée est en dehors du fichier.
Quand l’utiliser
Une requête Range au-delà de la fin de la ressource.
Causes courantes et solutions
L’en-tête Range demande des octets que le serveur n’a pas, généralement au-delà de la fin du fichier. La cause classique est la reprise d’un téléchargement avec curl -C - ou wget -c alors que le fichier local est déjà complet, ou que le fichier distant a changé de taille. Le serveur répond avec Content-Range: bytes */size, pour que le client puisse connaître la longueur réelle.
Corrigez en supprimant le fichier partiel pour repartir de zéro, ou en comparant d’abord les tailles. Les lecteurs vidéo reçoivent 416 quand un fichier est remplacé en cours de lecture ou qu’un CDN a mis en cache une version plus ancienne et plus courte ; purgez le cache. Les clients doivent envoyer If-Range avec l’ETag, pour qu’un fichier modifié renvoie un 200 avec le contenu complet au lieu d’un 416. Les serveurs peuvent aussi ignorer Range et répondre 200.
Erreur client (4xx)
Les codes 4xx sont des erreurs client : la requête elle-même est incorrecte, non autorisée ou vise quelque chose qui n’existe pas. Renvoyer la même requête ne servira à rien.
À quoi ça ressemble
HTTP/1.1 416 Range Not SatisfiableComment l’envoyer
| Node.js / Express | res.status(416).end() |
|---|---|
| Python / Flask | return '', 416 |
| nginx | return 416; |
Comment le vérifier
curl -s -o /dev/null -w "%{http_code}\n" https://example.com/