I notice Microsoft update for windows 8 is adding query strings to URLs as a token. This makes it hard for open source caches to work effectively with Microsoft Windows 8 updates. Maybe this is a method to force users to use Microsoft's proprietary windows update caching software. The recent KB2919355 update is a whopping 4Gb download. Bigger than an ISO for windows 8. I don't understand why Microsoft make the updates so large, and why they make them difficult to cache. It is almost as if they wish to maximise the bandwidth windows update consumes. The form is: http://bg.v4.a.dl.ws.microsoft.com/dl/content/d/updt/2013/09/f4d26fdb-d520-48da-add6-6a3c0832d14a_6fda48f8c83be2a15f49b83b10fc3dc8c1d15774.appx?P1=TOKEN&P2=TOKEN&P3=TOKEN&P4=TOKEN The server won't deliver the file unless the tokens are in place. Whenever a file is fetched, it appears to be the same irrespective of the tokens. I will carry out more research based on checksums of multiple files to make sure. These same files are typically fetched using range requests. The file example above is over 1Gb. Well worth caching. I'm looking for a way to configure squid3 so that if the domain is ws.microsoft.com and if the URL includes .appx?P1= then the URL is fetched with query string from the source and stored without query string. Any future request should match and deliver the stored file irrespective of any query string. Is there a convenient way to configure Squid to do this? Thanks.