refactor httprequest to support last-modified and etag header's attributes