# 206 Partial Content y las solicitudes de rango en HTTP

> 206 Partial Content significa que el servidor envía solo el rango de bytes que pidió el cliente, como en los reproductores de vídeo y las descargas reanudables.

URL: https://yes-seo.com/es/codigos-http/206

**206 Partial Content** significa que el servidor envía solo una parte de un archivo porque el cliente pidió un rango concreto de bytes. Así es como los reproductores de vídeo saltan a otro punto, los gestores de descargas reanudan y los visores de PDF obtienen una parte del documento cada vez.

## Definición

La [RFC 9110, sección 15.3.7](https://www.rfc-editor.org/rfc/rfc9110#section-15.3.7) dice que el servidor está “cumpliendo con éxito una solicitud de rango” al transferir una o varias partes de la representación. El cliente envía una cabecera `Range`; el servidor responde con `Content-Range`, que indica qué bytes envió, o con un cuerpo `multipart/byteranges` si son varios rangos. Los servidores anuncian que lo admiten con `Accept-Ranges: bytes`, y un rango que no se puede servir recibe 416 Range Not Satisfiable.

```
GET /media/intro.mp4 HTTP/1.1
Host: www.example.com
Range: bytes=0-1048575

HTTP/1.1 206 Partial Content
Content-Type: video/mp4
Content-Range: bytes 0-1048575/48211533
Content-Length: 1048576
Accept-Ranges: bytes
```

## Dónde importa admitir rangos

- **Vídeo y audio**: los reproductores piden rangos para arrancar rápido y para desplazarse por el contenido. Safari, en concreto, espera que los archivos de vídeo admitan rangos.

- **Descargas grandes** que deben reanudarse tras una conexión interrumpida.

- **PDF** abiertos en el visor del navegador.

Apache y Nginx gestionan los rangos de los archivos estáticos sin configuración adicional. Los problemas suelen venir del código de la aplicación que transmite archivos sin leer `Range`, o de proxies que lo eliminan.

## Impacto en el SEO

Un 206 es la respuesta normal a una solicitud de rango, así que no es un error. El riesgo es el contrario: un servidor o una caché que envía 206 y un fragmento ante una solicitud *sin* cabecera `Range`. Entonces un rastreador que pide tu HTML recibe una página truncada. Un GET normal de una página debe devolver [200](https://yes-seo.com/es/codigos-http/200) con el documento completo. La documentación de Google sobre códigos de estado no trata el 206, así que no cuentes con un tratamiento especial. (No lo confundas con [304 Not Modified](https://yes-seo.com/es/codigos-http/304), que no envía ningún cuerpo porque la copia en caché del cliente sigue vigente.)

## Cómo comprobarlo

El [comprobador de cabeceras HTTP](https://yes-seo.com/es/comprobador-cabeceras-http) muestra si un archivo anuncia `Accept-Ranges: bytes`, y el [comprobador de códigos de estado HTTP](https://yes-seo.com/es/comprobador-codigo-http) confirma que una solicitud normal devuelve 200. Para probar tú mismo un rango:

```
curl -s -o /dev/null -w "%{http_code}\n" -r 0-1023 https://www.example.com/media/intro.mp4
206
```

## Preguntas frecuentes

### ¿206 Partial Content es un error?

No. Es una respuesta de éxito a una solicitud de rango, que se usa en el streaming de vídeo, las descargas reanudables y los visores de PDF.

### ¿Por qué mi vídeo no se reproduce o no avanza en Safari?

Una causa habitual es un servidor o script que ignora la cabecera Range y siempre envía el archivo completo con 200. Asegúrate de servir los archivos multimedia con soporte de rangos para que el servidor pueda responder 206.

### ¿Una respuesta 206 puede perjudicar al SEO?

Solo si un servidor envía 206 y una página parcial a una solicitud normal sin cabecera Range, de modo que los rastreadores reciben un HTML truncado. Las solicitudes normales de página deben recibir 200 y el documento completo.

