At CocoaPods, we’ve been using the GitHub CDN at https://raw.githubusercontent.com/ to retrieve files from a repository. We are using ETags and
If-None-Match headers to avoid wasting bandwidth.
However, we’re getting sporadic ETag mismatches that seem incorrect:
CDN: trunk Relative path: Specs/9/6/0/A2DynamicDelegate/1.0.2/A2DynamicDelegate.podspec.json, has ETag? "42ce09220a8c0f220f67a8427ed644db7b8a3fda" CDN: trunk Redirecting from https://cdn.cocoapods.org/Specs/1/1/7/SDWebImage/3.1/SDWebImage.podspec.json to https://raw.githubusercontent.com/CocoaPods/Specs/master/Specs/1/1/7/SDWebImage/3.1/SDWebImage.podspec.json CDN: trunk Relative path downloaded: Specs/9/6/0/A2DynamicDelegate/1.0.2/A2DynamicDelegate.podspec.json, save ETag: W/"42ce09220a8c0f220f67a8427ed644db7b8a3fda"
As you can see, the ETag returned is in fact a weak version of the ETag requested. The file in question hasn’t changed.
This happens quite a lot and results in wasted bandwidth and longer update times.
Does anyone have any info on GitHub CDN and ETags?