Its not quite the question you are asking, but you could alternatively name the resources according to their hash. This is quite a common pattern. Then the resources are immutable, can be served with an infinite cache lifetime, and avoid any subsequent request - with an etag and if-none-match - you still get an upstream request so just save the downstream bandwidth.