As of Jersey 1.13 GZIPContentEncodingFilter (bug 1228) removes the If-None-Match header if the entity tag does not end with "-gzip". It should not remove the header. The request does not know if the output content will be gzipped. I have a custom GZIP filter to gzip some but not all responses based on the returned content-type. For example, it ignores all image/* types but these types also output an entity tag. Upgrading to 1.13 caused my URLs to no longer return 304.