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?
Of course I got the example wrong, here's a proper example:
CDN: trunk Relative path: Specs/9/6/0/A2DynamicDelegate/2.0.1/A2DynamicDelegate.podspec.json, has ETag? "bf0096d092cfc46f6e5c3c8dbaaf53a8bc412d09" CDN: trunk Redirecting from https://cdn.cocoapods.org/Specs/9/6/0/A2DynamicDelegate/2.0.1/A2DynamicDelegate.podspec.json to https://raw.githubusercontent.com/CocoaPods/Specs/master/Specs/9/6/0/A2DynamicDelegate/2.0.1/A2DynamicDelegate.podspec.json CDN: trunk Relative path downloaded: Specs/9/6/0/A2DynamicDelegate/2.0.1/A2DynamicDelegate.podspec.json, save ETag: W/"bf0096d092cfc46f6e5c3c8dbaaf53a8bc412d09"