Re: 206 response for Chrome Mobile
Andrew Akers <[email protected]> Thu, 10 Dec 2015 14:50:17 -0800
| Newsgroups | gmane.comp.audio.icecast.devel |
|---|---|
| Message-ID | <[email protected]> |
> On Dec 10, 2015, at 05:57, Philipp Schafft <[email protected]> wrote: > > Good morning, > > On Wed, 2015-12-09 at 17:39 -0800, Andrew Akers wrote: >> Hi - >> >> I'm using Icecast to stream some audio that I embed in an <audio> tag >> on a webpage. This is working great for desktop browsers and on iOS, >> but it doesn't work on Android. >> >> It looks like Chrome mobile sends the header "Range: bytes=0-1" and >> then doesn't try to load any more data when Icecast responds with a 0 >> byte "HTTP/1.0 200 OK" response. From my reading of the HTTP spec, it >> looks like there's two options here: either ignore the range header >> entirely, or return a 206 response along with headers indicating the >> kinds of range responses we can deal with. Here, it doesn't look like >> Icecast does either. >> >> The headers: >> Request: >> GET /mount.mp3 HTTP/1.1 >> Host: host:8000 >> Connection: keep-alive >> User-Agent: Mozilla/5.0 (Linux; Android 6.0; Nexus 5X Build/MDB08L) >> AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.76 Mobile >> Safari/537.36 >> Accept: */* >> Referer: https://host/ >> Accept-Encoding: gzip, deflate, sdch >> Accept-Language: en-US,en;q=0.8 >> Range: bytes=0-1 > > Asking for bytes=0-1 is a strange thing to do anyway! Sounds like a > strange workaround to me. I agree it’s a weird hack. They’re probably checking to see if the server supports range. > >> Response: >> HTTP/1.0 200 OK >> Server: Icecast 2.4.2 >> Date: Thu, 10 Dec 2015 01:23:11 GMT >> Content-Type: audio/mpeg >> Cache-Control: no-cache >> Expires: Mon, 26 Jul 1997 05:00:00 GMT >> Pragma: no-cache >> Access-Control-Allow-Origin: * >> icy-br: 32 >> ice-audio-info: bitrate=32;channels=1;samplerate=44100 >> icy-description: Description >> icy-genre: None >> icy-name: mount >> icy-pub: 0 >> icy-url: https://host/ > > Ok, how much data you get? > > I just tried with Icecast2 2.4.2 and with *exactly* your request (using > netcat). I got a 200 OK (as expected) and got the data from the stream. > Which is in my opinion exactly what you said above and also how I > understand the specs: it ignored the the range header completely. > >> Is there a quick patch to disable range support, or a place you can >> point me to in the code that might be causing this behavior? > > There is no config setting here. It's all implemented in > fserve_client_create() in fserve.c. Which is not even called from the > code path for active mounts. It is only called when sending flat files > from the filesystem. And it will fall back to ignoring the range header > in case there is a problem (like a seek failed). > > Please come back to me and tell me how much data you got from the server > with your request? > Weird. I definitely got 0 bytes, according to the Chrome dev tools. I might have to go raise a ticket with them. I’ll test it out again tomorrow. > I more suspect your client implementation cutting the data after the > expected amount. As this request already looks like a strange workaround > for something I'm not too sure their implementation is all correct here. > Yeah, it looks like a weird check to see if the server supports range. I’ll poke at it again tomorrow, and report the results. > Looking forward to your reply! > > -- > Philipp. > (Rah of PH2) Thanks! ______________ Andrew Akers [email protected] _______________________________________________ Icecast-dev mailing list [email protected] http://lists.xiph.org/mailman/listinfo/icecast-dev
signature.asc
(application/pgp-signature, 801 B)
-----BEGIN PGP SIGNATURE----- iQIcBAEBCAAGBQJWagGpAAoJEJ2wr3qhBQxafXsP+gPOQP48kU+fGC/eevvXezAv qFSb9TLWhg7uecjZw0nrXO/zyfo962ko7NLTa7l+Iz/nFMfeqriXNnegL8hzcrLa h9Ls9cirGPk1IXhCg4nisGylrRWOP3h+JGudAtJY+E3tIPdCrF8KiMCq0RAwqUdg XHaoVgcCt+VdyNysGJHUxsXezYEYUWgi0D72haNdV8cSoAFw+zuWXYGvccWZLNK+ C6kdfCTV4ooYNj8JCPEb0UhHtn3CRRlOLvict8MttaVKiCjVS3Jd3fCDEs7STaGn MB7RbBcKX/XvuWcm43NzrVk9QVglNbpnuVkjvKh73KlE/VbHVcA29nHASvjfUQAB U9En9GITMKCClCkFyJLrBHzKIHxlwAPodk6Ps4u34TMBMrEM8fMdxwyBiYxkB7Tk iHWfq/PT8Cfsivd/T7hbdzqhNA8IKYKQCojMZuRFTlIPh4acF7Q1pnMQ5R4WWn+W 76DJ3bJiUUjaVDVwN7iBAAmfURyXyxYGk4BFdbC2TLiBsZi/fRmTR38RUBMEwo7M vNfO6+BgeATs6r3aFdYZrNlri2aiiGgs/JlxCPDL63h2biH9o1jaqwoJiW80IiYo llOd5htme98CpDRvFbc3QzotCOxI7cGaqhEfmf9tx9XJKQbLwgy2pSV+kW9oK/hH gy8v+kmy7jTcSoIDlcU4 =lAbM -----END PGP SIGNATURE-----