code: protected boolean canSendLastModifiedHeader(CmsResource resource, HttpServletRequest req, HttpServletResponse res) {
  
          // resource state must be unchanged
          if (resource.getState().isUnchanged()
              // the request must not have been send by a workplace user (we can't use "304 - not modified" in workplace
              && !CmsWorkplaceManager.isWorkplaceUser(req)
              // last modified header must match the time form the resource
              && CmsFlexController.isNotModifiedSince(req, resource.getDateLastModified())) {
              long now = System.currentTimeMillis();
              if ((resource.getDateReleased() < now) && (resource.getDateExpired() > now)) {
                  // resource is available and not expired
                  CmsFlexController.setDateExpiresHeader(res, resource.getDateExpired(), m_clientCacheMaxAge);
                  // set status 304 - not modified
                  res.setStatus(HttpServletResponse.SC_NOT_MODIFIED);
                  return true;
              }
          }
          return false;
      }
docs: Checks if the requested resource must be send to the client by checking the "If-Modified-Since" http header.<p>
  
  If the resource has not been modified, the "304 - not modified"
  header is send to the client and <code>true</code>
  is returned, otherwise nothing is send and <code>false</code> is returned.<p>
  
  @param resource the resource to check
  @param req the current request
  @param res the current response
  
  @return <code>true</code> if the "304 - not modified" header has been send to the client