use rack middleware for etag/last modified