Implement #6 and #7, basic support for conditional GET with Etag