2012-03-18 4 views
14

Tengo un montón de elementos de video html5, con su atributo de precarga configurado en "auto". Comienzan a cargar bien, pero creo que puede haber un problema con el almacenamiento en caché, porque cada vez que vuelvo a cargar la página (sin borrar el caché), vuelven a comenzar.¿Por qué Firebug muestra una respuesta de "206 contenido parcial" en una solicitud de carga de video?

Cuando revisé el panel de red en firebug, noté que todo lo demás (imágenes y archivos) me daba un mensaje "304 no modificado" mientras los archivos de videos (y audio) me daban un "206 parcial contenido "mensaje, en entradas duplicadas.

La respuesta del "contenido parcial 206" también aparece en las entradas duplicadas cuando la página se carga con la caché borrada, en lugar de una respuesta "200 OK", como sería de esperar.

¿Es este un comportamiento normal de los elementos de video y audio? Si no, ¿cómo podría ser corregido?

Respuesta

13

Este código de contenido parcial (206) puede enviarse desde el servidor cuando el cliente solicitó un rango (por ejemplo, "dame los primeros 2 MB de datos de video").

Es vital para descargar datos en fragmentos, lo que evita recuperar recursos no utilizados. (Pocas veces veo un video completo en línea.) Mire la solicitud saliente para un encabezado Range.

Ver Status Codes (RFC2616 - HTTP/1.1) (tenga en cuenta que cualquier 2xx código significa "éxito"):

10.2.7 206 Contenido parcial:

El servidor ha cumplido la petición GET parcial del recurso. La solicitud DEBE ha incluido un campo de cabecera Rango (sección 14.35) que indica el rango deseado, y PUEDE haber incluido un campo de cabecera If-Range (sección 14.27) para hacer que la solicitud sea condicional.

Y desde la sección de Range header:

Si el servidor soporta la cabecera Rango y el rango o rangos especificados son apropiadas para la entidad

  • La presencia de una El encabezado del rango en un GET incondicional modifica lo que se devuelve si el GET tiene éxito. En otras palabras , la respuesta tiene un código de estado de 206 (contenido parcial ) en lugar de 200 (OK).

No entiendo las intricicies de almacenamiento en caché y/o ETags o qué esperar en Firefox, sin embargo.

0

En firefox en mi máquina de desarrollo local no pude obtener videos .webm para reproducir a menos que el servidor estuviera configurado para usarlos. Firebug mostraría 206 pero no mostraría nada.Esto puede ser como se resuelve mediante la adición de

AddType video/webm .webm

a su .htaccess.

0

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 no solicita múltiples partes podría no apoyar las respuestas de varias partes. Sin embargo, un servidor puede generar una multipart/byteranges carga con una sola parte del cuerpo si se solicitaron múltiples rangos y solo se encontró que un rango era satisfactorio o solo quedó un rango después de la fusión. Un cliente que no puede procesar una respuesta multipart/byteranges NO DEBE generar una solicitud que solicite rangos múltiples.

Cuando se genera una carga útil de respuesta de varias partes, el servidor DEBE enviar las piezas 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 multiparte DEBE inspeccionar el campo de encabezado Content-Range 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 en el mismo orden que solicitó. "

Cuestiones relacionadas