{"action":"created","issue":{"url":"https://api.github.com/repos/websharks/zencache/issues/639","labels_url":"https://api.github.com/repos/websharks/zencache/issues/639/labels{/name}","comments_url":"https://api.github.com/repos/websharks/zencache/issues/639/comments","events_url":"https://api.github.com/repos/websharks/zencache/issues/639/events","html_url":"https://github.com/websharks/zencache/issues/639","id":123642468,"number":639,"title":"Ability to cache GET (Query String) requests, but ignore the parameter value possible?","user":{"login":"lkraav","id":147228,"avatar_url":"https://avatars.githubusercontent.com/u/147228?v=3","gravatar_id":"","url":"https://api.github.com/users/lkraav","html_url":"https://github.com/lkraav","followers_url":"https://api.github.com/users/lkraav/followers","following_url":"https://api.github.com/users/lkraav/following{/other_user}","gists_url":"https://api.github.com/users/lkraav/gists{/gist_id}","starred_url":"https://api.github.com/users/lkraav/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lkraav/subscriptions","organizations_url":"https://api.github.com/users/lkraav/orgs","repos_url":"https://api.github.com/users/lkraav/repos","events_url":"https://api.github.com/users/lkraav/events{/privacy}","received_events_url":"https://api.github.com/users/lkraav/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/websharks/zencache/labels/enhancement","name":"enhancement","color":"84b6eb"},{"url":"https://api.github.com/repos/websharks/zencache/labels/needs%20feedback","name":"needs feedback","color":"fef2c0"},{"url":"https://api.github.com/repos/websharks/zencache/labels/needs%20research","name":"needs research","color":"fef2c0"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":5,"created_at":"2015-12-23T11:23:56Z","updated_at":"2015-12-29T05:38:28Z","closed_at":null,"body":"I would like to cache AdWords campaign responses which will receive tons of people with `?gclid=<id>` requests where `<id>` is an endless amount of random hashes. It makes no sense to cache these, because essentially they're one time use. So I would need to return a response that's general for just `gclid=` parameter, regardless of the exact value.\r\n\r\nhttp://zencache.com/kb/ doesn't seem to indicate it's possible at the moment. Am I missing anything?  "},"comment":{"url":"https://api.github.com/repos/websharks/zencache/issues/comments/167722480","html_url":"https://github.com/websharks/zencache/issues/639#issuecomment-167722480","issue_url":"https://api.github.com/repos/websharks/zencache/issues/639","id":167722480,"user":{"login":"jaswsinc","id":1563559,"avatar_url":"https://avatars.githubusercontent.com/u/1563559?v=3","gravatar_id":"","url":"https://api.github.com/users/jaswsinc","html_url":"https://github.com/jaswsinc","followers_url":"https://api.github.com/users/jaswsinc/followers","following_url":"https://api.github.com/users/jaswsinc/following{/other_user}","gists_url":"https://api.github.com/users/jaswsinc/gists{/gist_id}","starred_url":"https://api.github.com/users/jaswsinc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jaswsinc/subscriptions","organizations_url":"https://api.github.com/users/jaswsinc/orgs","repos_url":"https://api.github.com/users/jaswsinc/repos","events_url":"https://api.github.com/users/jaswsinc/events{/privacy}","received_events_url":"https://api.github.com/users/jaswsinc/received_events","type":"User","site_admin":false},"created_at":"2015-12-29T05:38:28Z","updated_at":"2015-12-29T05:38:28Z","body":"@lkraav \r\n\r\n> gclid is used by Google Analytics implementations (usually JS-based)\r\n\r\nI agree that it would be nice if ZC could be configured to strip specific query string variables from it's caching algorithm. Your example, Google Analytics, is a use case where `gclid` and [these utm_ variables](https://support.google.com/analytics/answer/1033867?hl=en) are probably safe to ignore in almost every case. These are used to assist in tracking campaign performance and referrals, so they _need_ to be there, but should _not_ (in most cases) have an impact on the cache engine (ideally).\r\n\r\n@raamdev writes...\r\n\r\n> any feedback here?\r\n\r\nI give this a :+1:. I think it's a good idea to allow for a configuration where you could define query string variables to exclude. I think that even warrants a new UI config panel in ZenCache myself.\r\n\r\n---\r\n\r\n**Aside:**\r\n\r\nIn addition to this, I recently observed that CloudFlare has an algorithm that can sort the query string variables by key, ordering them in the same way each time, before they calculate the cache location for that page. This is something we could consider doing also.\r\n\r\nExample query string:\r\n\r\n```\r\n?a=123&c=456&b=993&_=hello+world\r\n```\r\n\r\n... is always sorted, and then represented internally as:\r\n\r\n```\r\n?_=hello+world&a=123&b=993&c=456\r\n```\r\n\r\nSo that if you happen to run ZenCache w/ GET requests enabled (not recommended), but if you do, ZC could be smarter about how it determines the cache location. Sorting the variables removes most of the permutations that would need to be considered otherwise."}}