public static function canCacheRequest(RequestInterface $request)
    {
        $method = $request->getMethod();

        // Only GET and HEAD requests can be cached
        if ($method !== 'GET' && $method !== 'HEAD') {
            return false;
        }

        // Don't fool with Range requests for now
        if ($request->hasHeader('Range')) {
            return false;
        }

        return self::getDirective($request, 'no-store') === null;
    }