2009-12-14 10 views
7

Estoy depurando un programa que escribí y noté algo extraño. Configuré un servidor HTTP en el puerto 12345 que aloja un archivo de video OGG simple e intenté acceder a él desde Firefox.¿Por qué un navegador haría dos solicitudes separadas para el mismo archivo?

Al oler las solicitudes de red, encontré que se hicieron estas dos solicitudes:

GET /video.ogv HTTP/1.1 
Host: 127.0.0.1:12345 
User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5 
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 
Accept-Language: en-us,en;q=0.5 
Accept-Encoding: gzip,deflate 
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7 
Keep-Alive: 300 
Connection: keep-alive 


GET /video.ogv HTTP/1.1 
Host: 127.0.0.1:12345 
User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5 
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 
Accept-Language: en-us,en;q=0.5 
Accept-Encoding: gzip,deflate 
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7 
Keep-Alive: 300 
Connection: keep-alive 
Range: bytes=8122368- 

El video es casi 8 MB de tamaño, por lo que el hecho de que la segunda solicitud Específicos 8122368 bytes, que es 7932 KB; sugiere que está solicitando el final del archivo por alguna razón. Alguien tiene ideas?

+1

Me encanta el enlace a su dirección de host local. Divertido, pero no tan útil. Veamos cuántas personas lo denuncian como un enlace roto :-) – paxdiablo

+0

Lo siento, soy consciente de que no es útil, simplemente lo escribí sin pensarlo. Ha sido eliminado. –

Respuesta

8

Con el fin de admitir la búsqueda y reproducción de regiones de medios que aún no se han descargado, Gecko utiliza las solicitudes HTTP 1.1 de rango de bytes para recuperar los medios desde la posición de destino de búsqueda. Como los archivos Ogg no contienen su duración, la conexión de descarga inicial finaliza. Luego hay una búsqueda hasta el final del archivo Ogg y lee un poco de datos para extraer la duración del medio. Información de here y here.

0

En realidad, solicita 8122368 bytes comenzando desde el final hacia atrás. Que es 7.74MB si hice mis calcs correctamente.

podría ser algo en cómo se realiza el almacenamiento en búfer para ese tipo de archivo.

+0

No, está solicitando los bytes desde 8122368 hasta el final, que sería fileSize - 8122368 bytes. Ver: http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.35 –

2

Algunos formatos de medios tienen metadatos al final del archivo, y generalmente se requieren estos datos para permitir una búsqueda adecuada del video.

+0

Los archivos Ogg no tienen su duración, por lo que el navegador utiliza esta técnica para descubrirlo. – SimonDever

Cuestiones relacionadas