El rango de bytes solicitado está fuera del archivo.
Cuándo usarlo
Una solicitud Range más allá del final del recurso.
Causas habituales y soluciones
La cabecera Range pide bytes que el servidor no tiene, normalmente más allá del final del archivo. La causa clásica es reanudar una descarga con curl -C - o wget -c cuando el archivo local ya está completo, o cuando el archivo remoto ha cambiado de tamaño. El servidor responde con Content-Range: bytes */size, para que el cliente pueda conocer la longitud real.
Soluciónalo eliminando el archivo parcial y empezando de nuevo, o comparando antes los tamaños. Los reproductores de vídeo reciben 416 cuando se sustituye un archivo en mitad de la reproducción o una CDN guardó en caché una versión anterior más corta; purga la caché. Los clientes deberían enviar If-Range con el ETag, para que un archivo modificado devuelva 200 con el contenido completo en lugar de 416. Los servidores también pueden ignorar Range y responder 200.
Error del cliente (4xx)
Los códigos 4xx son errores del cliente: la solicitud en sí es incorrecta, no está autorizada o apunta a algo que no existe. Repetir la misma solicitud no servirá de nada.
Cómo se ve
HTTP/1.1 416 Range Not SatisfiableCómo enviarlo
| Node.js / Express | res.status(416).end() |
|---|---|
| Python / Flask | return '', 416 |
| nginx | return 416; |
Cómo comprobarlo
curl -s -o /dev/null -w "%{http_code}\n" https://example.com/