Koks skirtumas tarp „Cache-Control“: maksimalus amžius = 0 ir be talpyklos?

Cache-Control: max-age=0 antraštė Cache-Control: max-age=0 reiškia, kad turinys laikomas pasenusiu (ir turi būti iš naujo pakrautas), kuris iš tikrųjų yra toks pat kaip „ Cache-Control: no-cache .

527
26 июня '09 в 4:34 2009-06-26 04:34 rubyruy yra nustatytas birželio 26 d. 09:34 4:34 2009-06-26 04:34
@ 9 atsakymai

Turėjau tą patį klausimą ir mano paieškoje radome informaciją (jūsų klausimas buvo vienas iš rezultatų). Štai ką aš nustatiau ...

Cache-Control antraštėje yra dvi pusės. Viena pusė yra tai, kur ją gali siųsti žiniatinklio serveris (dar vadinamas „šaltinio serveriu“). Kita pusė yra vieta, kur ją gali siųsti naršyklė (dar vadinama „vartotojo agentu“).


Kai siunčiamas kilmės serveris

Darau prielaidą, kad max-age=0 tiesiog informuoja talpyklas (ir naudotojų agentus), kad atsakymas yra pasenęs dėl get-go, todėl jie prieš pakartotinai laikomos kopijos naudojimą turėtų kartoti atsakymo patikrinimą (pvz., Su antrašte „ If-Not-Modified ) nes no-cache pasakoja jiems, kad jie turi pakartoti patikrinimą prieš naudodami talpyklą. Nuo 14.9.1 Kas yra talpykla :

nėra talpyklos

... talpykla NEGALIMA naudoti atsakymo, kad patenkintų vėlesnį prašymą be sėkmingo šaltinio serverio. Tai leidžia kilmės serveriui užkirsti kelią talpyklai net ir tada, kai talpyklos yra sukonfigūruotos grąžinti pasenusius atsakymus į klientų užklausas.

Kitaip tariant, talpyklos kartais gali naudoti pasenusį atsakymą (nors manau, kad jos turėtų pridėti Warning antraštę), bet no-cache sako, kad jiems neleidžiama naudoti pasenusio atsakymo, neatsižvelgiant į tai, ar jums gali prireikti elgesio FOLLOW -validate kai puslapyje bus sukurta beisbolo statistika, bet norėtumėte, kad MUST- atkurti elgesį, kai susidarėte atsakymą į elektroninės prekybos pirkimą.

Nors jūsų pastabos yra teisingos, kai sakote, kad „ no-cache neturėtų užkirsti kelio saugojimui, iš tikrųjų tai gali būti dar vienas skirtumas, kai naudojate no-cache . Buvau stumbled į puslapį, „ Cache Management Demystified“ direktyvą , kurioje teigiama, kad (aš negaliu užtikrinti jo teisingumo):

Praktiškai „IE“ ir „Firefox“ pradėjo apdoroti „ne-cache“ direktyvą, tarsi ji būtų nurodiusi naršyklei net neišsaugoti puslapio. Šį elgesį pradėjome stebėti prieš metus. Įtariama, kad šį pakeitimą sukėlė plačiai paplitęs (ir neteisingas) šios direktyvos naudojimas, kad būtų išvengta talpyklos.

...

Atkreipkite dėmesį, kad neseniai „talpyklos valdymas: ne-talpykla“ taip pat pradėjo elgtis kaip „ne parduotuvės“ direktyva.

Be to, man atrodo, kad „ Cache-Control: max-age=0, must-revalidate turėtų reikšti iš esmės tą patį, kaip „ Cache-Control: no-cache . Galbūt tai yra būdas gauti MUST -validuoti „ no-cache elgseną, išvengiant matomos no-cache migracijos daryti tą patį, kaip „ no-store (t.y., ne visos talpyklos)?


Kai siunčiamas vartotojo agentas

Manau, kad „ shahkalpesh“ atsakymas taikomas vartotojo agento pusėje. Taip pat galite žiūrėti 13.2.6 „Atsakymų į kelis atsakymus“ .

Jei naudotojo agentas siunčia užklausą su „ Cache-Control: max-age=0 (dar žinomas kaip „persiuntimo perkainojimas“), kiekviena talpykloje esanti talpykla dar kartą patvirtins talpyklos įrašus (pvz., Su „ If-Not-Modified antrašte) iki originalo serverio. Jei atsakymas yra 304 (nepakeistas), galite naudoti talpyklą.

Kita vertus, užklausos siuntimas naudojant „ Cache-Control: no-cache (dar žinomas kaip „per„ reboot “) nėra pervertintas, ir atsakydamas serveris NEGALIMA naudoti talpyklos kopijos.

512
05 сент. Atsakymas, kurį pateikė Michael Krebs Sep 05 2009-09-05 16:43 '09 ne 16:43 2009-09-05 16:43

maksimalus amžius = 0

Tai prilygsta spustelėjimui „Atnaujinti“, o tai reiškia, kad man paskutinis egzempliorius, jei jau turiu paskutinę kopiją.

border=0

ne talpykla

Tai palaiko „Shift“ paspausdami „Atnaujinti“, o tai reiškia, kad viskas perrašoma.

35
12 мая '15 в 6:59 2015-05-12 06:59 atsakymą pateikė Cheng , gegužės 12 d., 15 val., 6:59 2015-05-12 06:59

Senasis klausimas dabar yra, bet jei kažkas ateina per šią paieškos kelią, kaip ir aš, atrodo, kad IE9 tai naudos, norėdamas patobulinti išteklių elgesį, kai naudojami mygtukai „Atgal“ ir „Pirmyn“. Kai naudojamas maksimalus amžius = 0, naršyklė naudos naujausią versiją, kai peržiūrėsite išteklių, kai spustelėsite mygtuką Back / Forward. Jei nenaudojama talpykla, ištekliai bus paskirti.

Daugiau informacijos apie IE9 talpyklą galima rasti šiame „ msgd“ pranešime, skirtame talpyklai .

30
27 нояб. atsakymą pateikė El Yobo lapkričio 27 d. 2010-11-27 12:13 '10, 12:13, 2010-11-27 12:13

Paskutiniuose testuose su IE8 ir „Firefox 3.5“ abu atrodo, kad jie atitinka RFC. Tačiau jie pasižymi „draugiškumu“ su šaltinio serveriu. IE8 mano, kad „ no-cache atsakymai yra tokie patys, kaip ir max-age=0,must-revalidate . Tačiau „Firefox 3.5“, atrodo, traktuoja „ no-cache kaip no-store ekvivalentą, dėl kurio prastas našumas ir pralaidumo naudojimas.

Kalmarų no-cache pagal nutylėjimą niekada neišsaugo nieko su „ no-cache antrašte, pavyzdžiui, „Firefox“.

Mano patarimas būtų nustatyti public,max-age=0 nejautriems ištekliams, kuriuos norite patikrinti, kad kiekvienas prašymas būtų šviežesnis, tačiau vis tiek leidžia naudoti našumą ir pralaidumą. Naudotojų pozicijoms, turinčioms tą pačią apskaitą, naudokite private,max-age=0 .

Aš visiškai vengsiu naudoti „ no-cache , nes atrodo, kad kai kurios naršyklės ir populiarios talpyklos yra paveldėtos dėl no-store funkcinio ekvivalento.

Be to, nereikia sekti Akamai ir Limelight. Nors jie iš esmės naudoja spartinimo įrankius kaip savo pagrindinę veiklą ir turi būti ekspertai, jie iš tikrųjų yra suinteresuoti gauti daugiau duomenų iš savo tinklų. „Google“ gali būti geras pasirinkimas emuliacijai. Atrodo, jie naudoja max-age=0 arba no-cache atsitiktinai, priklausomai nuo išteklių.

23
26 янв. atsakymą pateikė rmalayter 26 sausis 2010-01-26 02:06 '10, 02:06 2010-01-26 02:06
 maksimalus amžius Maksimalaus amžiaus = 0 direktyva, kad būtų atnaujinta  Tai galioja  pateikiamas tikrintuvas gali skirtis nuo šiuo metu saugomo patvirtinimo su talpyklos įrašu.  Šiuo atveju tai gali būti jūsų prašymas be  įtakos semantiniam skaidrumui.  Tačiau galimas tikrinimas gali turėti įtakos pasirinkimui.  Geriausias būdas yra  pateikiant prašymą.  Jei serveris atsako  su 304 (Ne modifikuota), tada nukopijuokite atgal klientui  su 200 (OK) atsakymu.  Jei serveris atsako į naują objektą ir talpyklą,  tačiau ji gali būti teikiama  kliento užklausą, naudojant stiprią palyginimo funkciją.  Jei klientas yra patvirtintas  talpykla tiesiog grąžina 304 (ne  Modifikuotas).  Priešingu atveju, jis grąžina naują subjektą 200 (OK) atsakymu.   NEGALIMA įtraukti min. Šviežios,    maksimalus arba maksimalus amžius.

mandagumas: http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9.4

Nepriimkite jo kaip atsakymo - turėsiu jį perskaityti, kad galėčiau suprasti tikrąjį jo naudojimą :)

18
26 июня '09 в 4:44 2009-06-26 04:44 atsakymas pateikiamas shahkalpesh birželio 26 d. 09:44 2009-06-26 04:44

Aš vargu ar yra talpyklų specialistas, bet Markas Notingamas. Čia yra jo talpyklos dokumentai . Ji taip pat turi puikias nuorodas skyriuje „Nuorodos“.

Remiantis šių dokumentų skaitymu, atrodo, kad max-age=0 gali leisti talpyklai išsiųsti talpyklą atsakymą į „tuo pačiu metu“ pateiktus prašymus, kur „tuo pačiu metu“ reiškia pakankamai arti vienas kito, jie atrodo tuo pačiu metu talpyklą, bet no-cache nebus.

11
26 июня '09 в 4:59 2009-06-26 04:59 atsakymą pateikė „ Hank Gay“ birželio 26 d., 09:59 2009-06-26 04:59

Beje, verta paminėti, kad kai kurie mobilieji įrenginiai, ypač „Apple“ produktai, pvz., „IPhone“ / „iPad“, visiškai ignoruoja antraštes, pvz., „Ne-cache“, „ne-store“, „Expired“: 0 arba kažkas, ką galite pabandyti juos gauti Negalima pakartotinai naudoti pasibaigiančius formos puslapius.

Jis nesukėlė jokių galvos skausmų, nes stengiamės išspręsti problemą su „iPad“, sakydami, kad mes užmigome puslapyje, kurį jie pasiekė per formų procesą, pvz., 2 žingsnis iš 3, ir tada įrenginys visiškai ignoruoja parduotuvės / talpyklos direktyvą, ir, kiek aš galiu pasakyti, paprasčiausiai trunka tai, kas yra virtualios puslapio momentinė nuotrauka iš jos paskutinės būsenos, ty ignoruoja tai, kas buvo aiškiai pasakyta, o ne tik tai, kad puslapis, kuris neturėtų būti išsaugotas, ir saugomas jį nekontroliuojant dar kartą, kuris, be kita ko, veda prie įvairių tipų n sesijos laikas.

Aš tiesiog pridedu tai, jei kas nors ateina ir negali suprasti, kodėl jie turi klaidų sesijoje su „iPhone“ ir „ipad“ funkcijomis, kurios, matyt, iš tikrųjų yra blogiausi pažeidėjai šioje srityje.

Su šia problema bandau išbandyti derintuvą, ir tai yra mano išvada, prietaisai visiškai ignoruoja šias direktyvas.

Net ir reguliariai naudodamas, pastebėjau, kad kai kurie mobilieji telefonai taip pat negali visiškai patikrinti naujų versijų, sako Galiojimo laikas: 0, ir tada patikrinkite paskutines modifikuotas datas, kad nustatytumėte, ar reikia gauti naują.

Tai tiesiog neįvyksta, todėl teko pridėti užklausos eilutes į css / js failus, kuriuos man reikia priverstiniam naujinimui, todėl kvailieji mobilieji įrenginiai mano, kad tai yra failas, kurio jis neturi, pavyzdžiui: my.css? v = 1, tada v = 2, kad atnaujintumėte css / js. Tai gana daug darbų.

Pasirinktinės naršyklės, beje, jei paliekate jas pagal nutylėjimą, nuo 2016 m., Kaip nuolat aptinku (darome daug pakeitimų ir atnaujinimų mūsų svetainėje), taip pat negalime patikrinti paskutinių pakeistų datų tokiose rinkmenose, tačiau užklausų eilutės metodas išsprendžia šią problemą . Štai ką aš pastebėjau su klientais ir biuro žmonėmis, kurie paprastai naudoja standartinius standartinius naudotojo nustatymus savo naršyklėse ir nežino apie „csch“ problemas naudojant „css / js“ ir kt. css / js keičiant, o tai reiškia, kad numatytosios jų naršyklių reikšmės, daugiausia MSIE / Firefox, nedaro to, ką jiems sako, jie ignoruoja pakeitimus ir ignoruoja paskutines pakeistas datas ir netikrina, net ir pasibaigus galiojimo laikui: 0 akivaizdu.

Tai buvo gera tema, turinti daug techninės informacijos, tačiau taip pat svarbu pažymėti, kaip blogai šios medžiagos palaikymas yra ypač mobiliuose įrenginiuose. Kas kelis mėnesius turiu pridėti daugiau apsaugos nuo atsisakymo sekti gautos antraštės komandas arba tinkamai interpretuoti šias komandas.

9
13 апр. atsakymas pateikiamas Lizardx 13 balandžio. 2016-04-13 22:49 '16 at 22:49 PM 2016-04-13 22:49

Čia yra nedidelis sprendimų medis, kuris, tikiuosi, paaiškins skirtumą.

2019

19 апр. Atsakymas pateikiamas pravdomil 19 balandžio. 2018-04-19 18:46 '18, 18:46 pm 2018-04-19 18:46

Skirtumas yra tas, kad „ne-cache“ („Firefox“ neparduodama) neleidžia saugoti talpyklos. Tai gali būti naudinga užkertant kelią puslapių, kuriuose yra saugomas turinys, įrašymui į diską ir puslapiams, kurie visada turėtų būti atnaujinami, net jei jie yra pakartotinai aplankyti naudojant mygtuką „Atgal“.

maks. amžius = 0 rodo, kad talpyklos įrašo pasenimas yra pasenęs ir turi būti pakartotinai patikrintas, tačiau neužkerta kelio išsaugoti. Dažnai naršyklės tikrina išteklius tik vieną kartą per naršyklės seansą, todėl turinys negali būti atnaujintas, kol svetainė nebus aplankyta naujame posėdyje.

Paprastai naršyklės neištrins pasibaigiančių talpyklų įrašų, nebent jie grįš vietos naujesniam turiniui, kai naršyklės talpykla yra pilna. Naudojant ne parduotuvę, ne-cache leidžia aiškiai ištrinti talpyklą.

0
26 июня '09 в 15:51 2009-06-26 15:51 atsakymas pateikiamas „ HttpWatchSupport“ birželio 26 d., 09: 15: 51 2009-06-26 15:51