Over on his blog, Dave Winer is giving Microsoft hell for the way IE7 handles enclosure downloads. For those of you who don't know what an enclosure is, if you publish or consumeĀ a podcast or vlog via RSS, you're using an enclosure to point at the binary file on the server. The problem, as Dave sees it, is this. Microsoft have set up the download mechanism such that
"if you are an enclosure publisher that wants to serve enclosures larger then 15MB to IE7 users, then you should use HTTP servers that support HTTP RANGE requests. Most popular web servers support HTTP RANGE requests."
and Dave's point is
"I don't know whether my server supports this feature or not, and I suspect most enclosure publishers (ie people who do podcasting) don't know either."
Dave goes on to say
"It surely seems Microsoft could handle the buffering without requiring a special feature from the server."
Well the thing is, it's not that big a deal. Most popular web servers support http range, and most ISP will be running a popular web server, so you can pretty much assume that your ISP will support it, and you can go ahead and publish your podcast (or whatever) in the same way as you always have, without there being any problem.
However, that's not to say there it not a problem with the way Microsoft have implemented enclosure downloads; it just means that Dave has missed the true nature of the problem. IE7 downloads enclosures by using BITS, which isĀ
"a background download service that ships in Windows and which enables downloading of files in the background while limiting its affects on network usage. In particular, BITS uses HTTP RANGE requests to download files in chunks. BITS also monitors whether foreground applications (like email or browser) are using the network, and if so, it throttles back its own network usage to limit its impact on those applications."
And, as Tod Cochrane points out
"A number of companies including mine absolutley hate that you all decided to continue using BITS it completly destroys stats reporting of downloads and puts ridiculous loads on servers that are serving the data.
Here is why instead of having to deal with one file request and serving it at once thus one call to our databases servers that are managing file distribution for load purposes you all send 100's of request for one single file."
That's right, your stats get hosed and your data servers get hammered, not a good place to be really. Stats are the life blood of many podcasting sites, it's what they use to get advertising revenue and if the stats are hosed then watch out for a lot of "interpretation" of the numbers. :)
You can read more on the Microsoft Team RSS Blog.