final HttpRequest originalRequest,
final HttpContext context,
final FutureCallback<HttpResponse> futureCallback) {
final BasicFuture<HttpResponse> future = new BasicFuture<HttpResponse>(futureCallback);
final HttpRequestWrapper request = HttpRequestWrapper.wrap(originalRequest);
final HttpCacheContext clientContext = HttpCacheContext.adapt(context);
// default response context
setResponseStatus(clientContext, CacheResponseStatus.CACHE_MISS);
final String via = generateViaHeader(request);