You're using ETag- and Last-Modified-headers but as far as I know the `FileReader` doesn't check for client requests like `HTTP_IF_MODIFIED_SINCE` and `HTTP_IF_NONE_MATCH`. The latter is the cached ETag, if it's set and doesn't match the ETag on the Server send the file regardless of the status of `HTTP_IF_NONE_MATCH`. If it's set and matches, and `HTTP_IF_MODIFIED_SINCE` is the same as `filemtime()` of the file, send the 304-header and exit, if the `HTTP_IF_NONE_MATCH`-header isn't set, just check for `HTTP_IF_MODIFIED_SINCE`.