206 Partial Content

Solo se devuelve una parte del recurso.

Cuándo usarlo

Al responder a una solicitud Range, para streaming de vídeo o descargas reanudables.

A tener en cuenta

Los servidores envían 206 solo cuando el cliente lo pide con una cabecera Range, como Range: bytes=0-1023, y el servidor admite rangos, algo que anuncia con Accept-Ranges: bytes. La respuesta lleva Content-Range: bytes 0-1023/146515 con el tamaño total. Safari e iOS exigen compatibilidad con rangos para el vídeo: si tu servidor ignora Range y devuelve 200, la reproducción de MP4 suele fallar directamente.

Las solicitudes más allá del final del archivo reciben 416. Varios rangos en una misma solicitud vuelven como multipart/byteranges. Los rangos se aplican a los bytes codificados, así que los servidores no suelen usar gzip para los archivos multimedia. Detrás de una CDN, comprueba que las solicitudes parciales se almacenan en caché y se sirven correctamente, sin pasarlas al origen cada vez. Prueba con curl -r 0-99 -i, y las descargas reanudables con curl -C - -O.

Éxito (2xx)

Los códigos 2xx indican éxito: el servidor recibió, entendió y aceptó la solicitud.

Cómo se ve

HTTP/1.1 206 Partial Content

Cómo enviarlo

Node.js / Expressres.status(206).end()
Python / Flaskreturn '', 206
nginxreturn 206;

Cómo comprobarlo

curl -s -o /dev/null -w "%{http_code}\n" https://example.com/

Abrir Códigos de estado HTTP