when content is null, just give up
add etag to save network traffic