2012-11-07 60 views
0

我开发了一个用java编写的轻型web服务器(非常轻便),他的目的主要是流式传输音频。我的Web服务器似乎没有正确回复请求

在网页上我有一个简单的html5音频标签。当我在浏览器中加载页面时,浏览器对音频文件发出GET请求,并且工作正常。 但是,当我暂停/播放或寻找,浏览器发出请求,在X与范围的条件

GET /audio/3f6dbbd6adcb5eb4ea4cd981f30a6c409727bbf202367df18d4dd1a91a959fdb HTTP/1.1 
Host: localhost:8888 
Connection: keep-alive 
Accept-Encoding: identity;q=1, *;q=0 
User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.16 (KHTML, like Gecko) Chrome/24.0.1304.0 Safari/537.16 
Accept: */* 
Referer: http://localhost:8888/stream/3f6dbbd6adcb5eb4ea4cd981f30a6c409727bbf202367df18d4dd1a91a959fdb 
Accept-Language: en-US,en;q=0.8,fr;q=0.6 
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3 
Range: bytes=360448- 

字节和我做了我的服务器答复与条件的206部分内容:

HTTP/1.1 206 Partial Content 
Date : Wed Nov 07 08:07:32 CET 2012 
Content-Length:11126914 
Content-Range: bytes 360448-11487361 
Accept-Ranges: bytes 
Content-Type : audio/mpeg 

的下面当然由360448字节开始的二进制数据,但浏览器似乎并不喜欢它,当我在浏览器上观看网络数据时,它甚至没有得到答复(连接被标记为取消)。

我试图观察一个Apache服务器发生了什么,但那种困难,因为浏览器总是使用200(缓存),这意味着它使用缓存版本的MP3,所以没有请求到服务器。

我尝试作弊,并使用另一个响应号码,如200或甚至304(某些服务器似乎使用它),但在这里没有运气。

我在这个过程中做错了什么? 如果它需要

回答

2

我可以提供更多的日志据http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.16,标题应该是

Content-Range: bytes 360448-11487361/11487362 

11487362是该文件的全尺寸,与11487361是最后一个从零开始的字节偏移。

+0

叹息,我看到这个,当我看到头字段定义,我没有将它添加到代码中,那是我的错误,非常感谢 – eephyne