Qu’est-ce qui varie: accept-encoding signifie?

l’addon vitesse de la page google m’informe:

The following publicly cacheable, compressible resources should have a "Vary: Accept-Encoding" header: //some .js and .css files 

Je ne comprends pas ce que cela signifie. J’ai déjà compressé ces fichiers comme suit:

 if (encodings.Contains("gzip") || encodings == "*") { app.Response.Filter = new GZipStream(baseStream, CompressionMode.Compress); app.Response.AppendHeader("Content-Encoding", "gzip"); } 

Et tout cela semble fonctionner. Pourquoi est Vary: Accept-Encoding nécessaire d’avoir Vary: Accept-Encoding ?

Cela permet au cache de servir différentes versions mises en cache de la page, que le navigateur demande ou non le codage GZIP. L’en-tête de variation indique au cache de stocker une version différente de la page en cas de variation de l’en-tête indiqué.

En l’état actuel des choses, il y aura une copie (éventuellement compressée) de la page en cache. Disons qu’il s’agit de la version compressée: si quelqu’un demande la ressource mais ne prend pas en charge le codage gzip, un contenu erroné lui sera envoyé.

Vary: Accept-Encoding informe le comportement du serveur en ce qui concerne la mise en cache de la représentation de la ressource demandée. Si une nouvelle demande pour une ressource précédemment mise en cache est reçue, elle sera servie à partir de l’antémémoire, sauf si l’en-tête Accept-Encoding de la nouvelle demande est différent de la représentation précédemment mise en cache. À ce stade, la demande sera traitée comme une nouvelle demande. ne sera pas servi de cache.

** EDIT ** Comme le fait remarquer Spender – si vous fournissez un fichier compressé à partir du cache et que le client n’accepte pas votre mécanisme de compression, il obtiendra une page de courrier indésirable, alors oui, c’est nécessaire. Cependant, vous ne remarquerez pas nécessairement la différence lors d’essais normaux.

Voir http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.44 et http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.3