add etag header to response if not already defined. check response freshness return a 304 if fresh.