Apache returns HTTP 206 for GET /file.mp3

apache-2.2http-headers

I am making a get request to an SSL enabled site on apache (so wireshark isn't giving me anything to useful).

In my Apache SSL access log I see the following entry:

1.2.3.4 - my.username [15/Nov/2012:16:52:01 +0000] "GET /uploads/file.mp3 
HTTP/1.1" 206 534400 "https://site.com/uploads/layla.mp3" 
"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.19 (KHTML, like Gecko) 
Ubuntu/12.04 Chromium/18.0.1025.168 Chrome/18.0.1025.168 Safari/535.19"

Why is this happening? I'm not familiar with the HTTP 206 response code but searching the Internet I can see it is a partial content GET requests. I understand correctly, my browser is making a partial GET request not for the full file. Is that correct? If so, is this a browser issue or is the web server instructing my browser to do so? I have tested in Firefox also and in both browser, I am not sent the file.

If I rename the file to file.jpg I can download it through my browser and rename it to .mp3 and it plays.

How can I troubleshoot this issue?

Best Answer

From RFC2616:

10.2.7 206 Partial Content

The server has fulfilled the partial GET request for the resource. The request MUST have included a Range header field (section 14.35) indicating the desired range, and MAY have included an If-Range header field (section 14.27) to make the request conditional.

You can use a browser tool to inspect request and response headers for the resource, to verify if they complied with the RFC; the result will tell you where the problem lies.

Related Topic