我有一个Flask应用程序,它返回服务器生成的Ogg Vorbis音频。
resp = make_response(out.getvalue()) # out is a StringIO()
resp.headers['Content-Type'] = 'audio/ogg'
return resp
当我在Chrome中请求此功能时,它表现得很奇怪。第一个请求完成后,将显示Chrome音频播放器,然后发送第二个请求。一旦完成,音频就会开始播放。
请求之间只有一些差异:
请求1
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Encoding: gzip, deflate, sdch
Cache-Control: max-age=0
请求2
Accept: */*
Accept-Encoding: identity;q=1, *;q=0
Range: bytes=0-8397
第二个请求中Range
标头的奇怪之处在于响应的Content-Length
为8398。
两个请求的响应头都相同。
Content-Length: 8398
Content-Type: audio/ogg
Date: Sun, 10 May 2015 18:35:09 GMT
Server: Werkzeug/0.9.6 Python/2.7.9
为什么会这样?