I've been having problems serving videos from my dev server that play in mobile Safari. My dev server does not support the 'Accept-Ranges' header and after reading a few forums I've discovered that may be my problem. Here is an example forum posting saying just that.
Is this correct? Does mobile Safari require the Accept-Ranges header? Can anyone point me to any Apple documentation actually stating that?
Thanks.
I found some Apple documentation that says that it does in fact need that for video.
HTTP servers hosting media files for iOS must support byte-range requests, which iOS uses to perform random access in media playback. (Byte-range support is also known as content-range or partial-range support.) Most, but not all, HTTP 1.1 servers already support byte-range requests.
If you are not sure whether your media server supports byte-range requests, you can open the Terminal application in OS X and use the curl command-line tool to download a short segment from a file on the server:
curl --range 0-99 http://example.com/test.mov -o /dev/null
If the tool reports that it downloaded 100 bytes, the media server correctly handled the byte-range request. If it downloads the entire file, you may need to update the media server.
The answer above is helpful, but does not actually answer the question that was asked.
According to the HTTP RFC, the Accept-Ranges header is optional even when byte-range requests are supported.
However, the documented curl check implies that the answer is no: iOS does not require the Accept-Ranges header for video, but does require byte-range support with partial content (206) responses.
Disclaimer: I haven't checked it on an actual device.
来源:https://stackoverflow.com/questions/3397241/does-iphone-ipad-safari-require-accept-ranges-header-for-video