docs: public static boolean hasCacheableHeaders(Headers headers) {
          if (headers.contains(VARY_ALL)) {
              return false;
          }
          if (headers.contains(CACHE_CONTROL)) {
              Optional<CacheControl> cc = headers.getCacheControl();
              if (OptionalUtils.exists(cc, (cc2 -> cc2.isNoCache() || cc2.isNoStore()))) {
                 return false; 
              }
          }
          if (headers.contains(PRAGMA)) {
              Optional<String> header = headers.getFirstHeaderValue(PRAGMA);
              if (OptionalUtils.exists(header, s -> s.contains(NO_CACHE_HEADER_VALUE))) {
                  return false;
              }
          }
          if (headers.contains(EXPIRES)) {
              Optional<LocalDateTime> expires = headers.getExpires();
              Optional<LocalDateTime> date = headers.getDate();
              if (!expires.isPresent() || !date.isPresent()) {
                  return false;
              }
              if (OptionalUtils.exists(expires, e -> e.isBefore(date.get())) || OptionalUtils.exists(expires, e -> e.isEqual(date.get()))) {
                  return false;
              }
          }
          return true;
      }