Added HTTP ETag support (provides better caching) (tag used is MD5)