code: def search_response(self, request):
          
          logger.debug("Cache Search Response")
  
          if self.cache.is_empty() is True:
              logger.debug("Empty Cache")
              return None
  
          """
          create a new cache key from the request
          """
  
          if self.mode == defines.FORWARD_PROXY:
              search_key = CacheKey(request)
          else:
              search_key = ReverseCacheKey(request)
  
          response = self.cache.get(search_key)
  
          return response
docs: creates a key from the request and searches the cache with it
  
          :param request:
          :return CacheElement: returns None if there's a cache miss