cache.match() will look at If-None-Match and if it matches, it will return a 304 response, however if the requested URL is not cached, then cache.match() will fail and then I'll fetch from origin.304 at this point. I've been looking for worker examples to do that but haven't found any to my surprise (thought it'd be a pretty common thing to do).