2009-12-14 8 views
7

Jestem debugowania programu, który napisałem i zauważyłem coś dziwnego. Ustanowiłem serwer HTTP na porcie 12345, który obsługuje prosty plik wideo OGG i próbował uzyskać do niego dostęp z przeglądarki Firefox.Dlaczego przeglądarka ma utworzyć dwa oddzielne żądania dla tego samego pliku?

Po wąchania żądania sieciowe, znalazłem te dwa wnioski zostały złożone:

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- 

Film jest prawie 8 MB, więc fakt, że drugie żądanie Informacje dotyczące 8122368 bajtów, czyli 7932 KB, sugeruje, że z jakiegoś powodu żąda końca pliku. Ktoś ma pomysły?

+1

Uwielbiam link do twojego adresu localhost. Zabawne, ale niezbyt użyteczne. Zobaczmy, jak wielu ludzi zgłasza to jako zepsuty link :-) – paxdiablo

+0

Przepraszam, zdaję sobie sprawę, że to nie jest użyteczne, po prostu napisałem to bez zastanowienia. Zostało usunięte. –

Odpowiedz

8

Aby wesprzeć wyszukiwanie i odtwarzanie regionów mediów, które nie zostały jeszcze pobrane, Gecko używa żądań HTTP w bajtach w zakresie bajtów w celu pobrania multimediów z szukanej pozycji docelowej. Ponieważ pliki Ogg nie zawierają ich czasu trwania, początkowe połączenie pobierania zostaje zakończone. Następnie szukamy końca pliku Ogg i odczytujemy trochę danych, aby wyodrębnić czas trwania nośnika. Informacje od here i here.

0

Właściwie żąda 8122368 bajtów począwszy od końca od końca. Co to jest 7,74 MB, jeśli poprawnie wykonałem obliczenia.

Może to być coś w rodzaju buforowania tego typu pliku.

+0

Nie, żąda bajtów od 8122368 do końca, które byłyby fileSize - 8122368 bajtów. Zobacz: http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.35 –

2

Niektóre pliki multimedialne mają metadane na końcu pliku, a dane te są zwykle wymagane, aby umożliwić prawidłowe wyszukiwanie filmu.

+0

Pliki Ogg nie mają czasu trwania, więc ta technika jest używana przez przeglądarkę, aby to sprawdzić. – SimonDever

Powiązane problemy