2009-12-14 41 views
7

Tôi đang gỡ lỗi một chương trình tôi đã viết và nhận thấy điều gì đó kỳ lạ. Tôi thiết lập một máy chủ HTTP trên cổng 12345 mà các máy chủ một tập tin video OGG đơn giản, và cố gắng truy cập nó từ Firefox.Tại sao một trình duyệt thực hiện hai yêu cầu riêng biệt cho cùng một tệp?

Khi đánh hơi theo yêu cầu mạng, tôi thấy hai yêu cầu này đã được thực hiện:

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- 

Đoạn video là gần 8 MB trong kích thước, vì vậy thực tế là thứ hai yêu cầu cụ thể 8.122.368 byte, mà là 7932 KB, cho thấy nó đang yêu cầu kết thúc của tập tin vì một lý do nào đó. Bất cứ ai có ý tưởng?

+1

Tôi thích liên kết đến địa chỉ máy chủ cục bộ của bạn. Vui, nhưng không hữu ích. Hãy xem có bao nhiêu người báo cáo nó như là một liên kết bị hỏng :-) – paxdiablo

+0

Xin lỗi, tôi biết rằng nó không hữu ích, tôi chỉ viết nó mà không cần suy nghĩ. Nó đã bị xóa. –

Trả lời

8

Để hỗ trợ tìm kiếm và phát lại các vùng của phương tiện chưa được tải xuống, Gecko sử dụng các yêu cầu phạm vi byte HTTP 1.1 để truy xuất phương tiện từ vị trí mục tiêu tìm kiếm. Do các tệp Ogg không chứa thời lượng của chúng nên kết nối tải xuống ban đầu sẽ bị chấm dứt. Sau đó, có một tìm kiếm để kết thúc của tập tin Ogg và đọc một chút dữ liệu để trích xuất thời gian của phương tiện truyền thông. Thông tin từ herehere.

0

Thực sự yêu cầu 8122368 byte của nó bắt đầu ngược từ đầu. Đó là 7,74MB nếu tôi đã làm calcs của tôi một cách chính xác.

nó có thể là một cái gì đó trong cách đệm cho loại tệp đó được thực hiện.

+0

Không, nó yêu cầu các byte từ 8122368 đến cuối, mà sẽ là fileSize - 8122368 byte. Xem: http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.35 –

2

Một số định dạng phương tiện có dữ liệu meta ở cuối tệp và dữ liệu này thường được yêu cầu để cho phép tìm kiếm video phù hợp.

+0

Các tệp Ogg không có thời lượng của chúng để kỹ thuật này được trình duyệt sử dụng để tìm hiểu điều đó. – SimonDever

Các vấn đề liên quan