Dumping file content to a stream handler is simple enough, but highly inefficient. There has to be a better way of chunking the response, possibly compressing the content, or something else to make bandwidth usage lower and possibly client-side caching.