support etag and last-modified