http - 4xx - response status codes
¿Por qué Firebug muestra una respuesta de "206 Contenido parcial" en una solicitud de carga de video? (3)
En Firefox, en mi máquina de desarrollo local, no podía reproducir videos .webm a menos que el servidor estuviera configurado para usarlos. Firebug mostraría 206 pero nada mostraría. Esto puede ser resuelto agregando
AddType video/webm .webm
a su .htaccess.
Tengo un montón de elementos de video html5, con su atributo de precarga establecido en "auto". Empiezan a cargarse bien, pero creo que puede haber un problema con su almacenamiento en caché, porque cada vez que recargo la página (sin borrar la memoria caché), comienzan de nuevo.
Cuando revisé el panel de Red en firebug, noté que todo lo demás (imágenes y archivos) me estaba dando un mensaje "304 no modificado" como se esperaba, mientras que los archivos de videos (y audio) me estaban dando un mensaje "206 contenido parcial" en entradas duplicadas.
La respuesta "206 contenido parcial" también aparece en entradas duplicadas cuando la página se carga con el caché borrado, en lugar de una respuesta "200 OK", como se esperaría.
¿Es este un comportamiento normal para los elementos de video y audio? Si no, ¿cómo podría corregirse?
Este código de contenido parcial (206) puede enviarse desde el servidor cuando el cliente ha solicitado un rango (por ejemplo, "dame los primeros 2 MB de datos de video").
Es vital para la descarga de datos en trozos que evita la obtención de recursos no utilizados. (Rara vez veo un video completo en línea). Mire la solicitud de salida para un encabezado de Range
.
Consulte Códigos de estado (RFC2616 - HTTP / 1.1) (tenga en cuenta que cualquier código 2xx significa "éxito"):
10.2.7 206 Contenido parcial:
El servidor ha cumplido con la solicitud parcial de GET para el recurso. La solicitud DEBE haber incluido un campo de encabezado de Rango (sección 14.35) que indica el rango deseado , y PUEDE haber incluido un campo de encabezado de Rango Si (sección 14.27) para hacer que la solicitud sea condicional.
Y desde la sección de cabecera de rango :
Si el servidor admite el encabezado de rango y el rango o los rangos especificados son apropiados para la entidad
- La presencia de un encabezado de rango en un GET incondicional modifica lo que se devuelve si el GET es exitoso. En otras palabras, la respuesta lleva un código de estado de 206 (Contenido parcial) en lugar de 200 (OK) .
Sin embargo, no entiendo las complejidades del almacenamiento en caché y / o ETags o qué esperar en Firefox.
Según https://httpstatuses.com/206
"Un servidor NO DEBE generar una respuesta de varias partes a una solicitud de un solo rango, ya que un cliente que no solicita múltiples partes podría no admitir respuestas de múltiples partes. Sin embargo, un servidor PUEDE generar una carga útil de múltiples partes / intercambios con una sola parte del cuerpo si se solicitaron múltiples rangos y solo se encontró que uno de ellos era satisfactorio o solo se mantuvo un rango después de la fusión. Un cliente que no puede procesar una respuesta multiparte / rango NO DEBE generar una solicitud que solicite rangos múltiples.
Cuando se genera una carga útil de respuesta multiparte, el servidor DEBERÍA enviar las partes en el mismo orden en que apareció la especificación de rango de bytes correspondiente en el campo de encabezado Rango recibido, excluyendo aquellos rangos que se consideraron insatisfactorios o que se fusionaron en otros rangos. Un cliente que recibe una respuesta de varias partes DEBE inspeccionar el campo de encabezado de rango de contenido presente en cada parte del cuerpo para determinar qué rango está contenido en esa parte del cuerpo; un cliente no puede confiar en recibir los mismos rangos que solicitó, ni el mismo pedido que solicitó ".