move freshness check outside of etag header check