De ce anteturile mele expiră nu fac fișierele mele să rămână în cache?

Folosesc anteturi valide de expirare și fără cache pentru fișierele mele statice și acestea rămân în cache atâta timp cât navighez, dar când închid browserul și îl folosesc înapoi după un timp, văd fișierele statice încărcându-se din nou, chiar și atunci când nu se reîmprospătează cu ctrl (+ shift) + r

Folosesc Firefox, dimensiunea cache-ului setată la 250 MB și nu-l las să elimine date private sau din cache.

Antete: Accept-Range: bytes Cache-Control: max-age=29030400, public Content-Length: 142061 Content-Type: image/png Data: Tue, 08 Dec 2009 19:18:43 GMT Expiră: Tue, 09 Nov 2010 19:18:43 GMT Ultima modificare: duminica, 18 ianuarie 2009 18:33:48 GMT Server: Apache/2.2.14 (EL)


person EarthMind    schedule 08.12.2009    source sursă
comment
Folosiți un antet co-cache? Ce-i asta? Fără a vedea efectiv traficul din antet, în ambele direcții, este greu să înțelegi întrebarea ta.   -  person Jonathan Feinberg    schedule 08.12.2009
comment
Puteți posta cum arată temele dvs. de antet?   -  person Larry Hipp    schedule 08.12.2009


Răspunsuri (1)


Ce versiune de Firefox? Serverul trimite Etag-uri pentru fișierele statice? Puteți vedea detalii despre cache-ul Firefox accesând adresa about:cache și aruncând o privire. Asta vă va oferi o idee despre ce memorează Firefox.

Actualizare: după ce vă uitați la etichetele de antet, se pare că valoarea max-age este setată la o dată care este mult din trecut și care înlocuiește valoarea setată în Antetul Expiră. Consultați definiția protocolului HTTP 1.1 la: http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9.3.

Dacă un răspuns include atât un antet Expires, cât și o directivă max-age, directiva max-age înlocuiește antetul Expires, chiar dacă antetul Expires este mai restrictiv. Această regulă permite unui server de origine să furnizeze, pentru un răspuns dat, un timp de expirare mai lung unui cache HTTP/1.1 (sau mai târziu) decât unui cache HTTP/1.0. Acest lucru ar putea fi util dacă anumite cache HTTP/1.0 calculează necorespunzător vârstele sau timpii de expirare, probabil din cauza ceasurilor desincronizate.

Va trebui să modificați antetul Cache-Control trimis de server.

person kingsindian    schedule 08.12.2009
comment
Când te uiți la about:cache, vei putea vedea ce anteturi stochează firefox. - person Larry Hipp; 08.12.2009
comment
Întotdeauna cel mai recent, în acest moment 3.5.5. Și niciun etag nu este dezactivat. - person EarthMind; 08.12.2009