J'ai cherché partout une solution à cela, mais jusqu'à présent rien. Je rends dynamiquement une page HTML dans Node.js/Express, en générant un ETag par SHA256 en hachant la chaîne HTML et en envoyant la page via nginx. Pour une raison quelconque, Google Chrome ne mettra pas en cache la page ou n'enverra pas d'en-tête "If-None-Match" pour l'ETag précédente.Google Chrome ne cache pas le contenu
Voici mes en-têtes de requête et de réponse:
Demande:
GET/HTTP/1.1
Host: dev.logan.oikoi.co
Connection: keep-alive
Cache-Control: max-age=0
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_0) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/21.0.1180.82 Safari/537.1
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-US,en;q=0.8
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3
Cookie: km_ai=Q%2FR9nmmebaNLthhixes8jxMubzQ%3D; km_uq=; kvcd=1346083163009; km_vs=1; km_lv=1346083163
Réponse:
HTTP/1.1 200 OK
Server: nginx/1.2.3
Date: Sun, 26 Aug 2012 06:20:46 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: keep-alive
Vary: Accept-Encoding
X-Powered-By: Express
Cache-Control: public, max-age=0, must-revalidate, proxy-revalidate
Expires: Thu, 01 Jan 1970 00:00:00 GMT
ETag: "2e26404f4306e4d2a7c821f537aa3e714d655d260462f8a7fdd9f0a8ad501900"
Set-Cookie: connect.sid=rPrRyvqf3LhbilN0syPU3htr.776UPuqojSyF1YgS0AFcyac4qQtv%2FXF9TFSHQ96p6e8; path=/; expires=Sun, 26 Aug 2012 10:20:46 GMT; httpOnly; secure
Content-Encoding: gzip
Edit: j'oublié de mentionner dans mon post initial, mais Firefox n'a pas de problème mettre en cache la page.
Merci pour la réponse rapide! J'ai essayé de supprimer ces deux en-têtes, mais le navigateur ne mettra toujours pas en cache le contenu ou n'enverra pas d'en-tête "If-None-Match". Pour ce qui est de la raison pour laquelle j'ai essayé le revalidation du must, les pages rendues sont dynamiques et changent de façon sporadique - je veux sauvegarder la bande passante en ne servant pas une page inutilement, tout en vérifiant si une page est fraîche à chaque requête. –