Same here, lengthy exchanges with support. I desperately need “Vary: Accept” as well.
We serve JPEG or WEBP depending on browser support, on a single URL. KeyCDN ignoring the Vary header means that if a Chrome browser loads the image first, followed by Microsoft Edge, both will receive a WEBP, but only one of them will understand it.
The Vary header is part of the HTTP standard, namely RFC 7231, section 7.1.4:
An origin server might send Vary (…) to inform cache recipients that they MUST NOT use this response to satisfy a later request unless the later request has the same values for the listed fields as the original request (Section 4.1 of RFC7234). In other words, Vary expands the cache key required to match a new request to the stored cache entry.
Not supporting this header is a serious breaking of the standard that would deserve a big red warning in KeyCDN’s documentation; by ignoring the Vary header the CDN will serve the same content to browsers with different capabilities. The end result is a broken page.
I have to note that the Vary header is supported by pretty much every proxy implementation out there (for good reason).
I would love if KeyCDN could provide an ETA for this feature!
I can understand the fear, from a CDN perspective, that misuse of the Vary header by origin servers might lead to significantly lower HIT rates. But there are many reasonable use cases for this header, and content negotiation using Accept is one of them.
As far as I’m concerned, this feature is the last piece of awesomeness missing from KeyCDN.
But a piece big enough to consider another CDN…