Cache one file to serve image of multiple sizes.
Nah, by using the Content-Range header, you can download partition of the file and render lower resolution image.