The following code can probably be simplified to make it more readable, it's important to have keys in the same format!
//todo: Simplify this
var varyHeaders = request.Headers.Where(x => response.Headers.Vary.Any(y => y.Equals(x.Key, StringComparison.CurrentCultureIgnoreCase))).SelectMany(o => o.Value);
var formattedVaryheaderString = varyHeaders.Aggregate("", (current, varyHeader) => current + (VaryHeaderDelimiter + varyHeader));
The following code can probably be simplified to make it more readable, it's important to have keys in the same format!