Kalkylator för HTTP-cachens giltighetstid

Ange värdena för Cache-Control, Expires, Date och Age i ett svar, tidpunkten då det mottogs och tidpunkten att kontrollera. Kalkylatorn ger färskhetstiden, den aktuella åldern och om svaret fortfarande är färskt.

Typ av cache
s
Färskhetsbedömning (vid tidpunkten att kontrollera) —
Färskhetstid (hur länge svaret kan förbli färskt; ändras inte när tiden går)
Färskhetstid—
Källa som används—
Aktuell ålder (tiden sedan svaret skapades; ökar när tiden går)
Aktuell ålder—
  Skenbar ålder (mottagningstid − Date)—
  Värdet i Age-huvudet—
  Ålder vid mottagandet (det större av de två ovan)—
  Tid sedan mottagandet—
Återstående färskhet
Återstående färskhet (färskhetstid − aktuell ålder)—
Tidpunkt då det blir inaktuellt—

    Detta är en beräkning baserad på RFC 9111. Verkliga webbläsare och CDN:er beter sig inte alltid exakt som standarden beskriver. Svarsfördröjningen sätts till 0.

    Vad kalkylatorn gör

    Den täcker en del av RFC 9111, standarden för HTTP-cachning: färskhetsberäkningen. Det är den del som avgör om ett lagrat svar får återanvändas utan att kontrollera med ursprungsservern. Validering (ETag, If-Modified-Since, 304), Vary och Cache-Control på förfrågningssidan ingår inte.

    Färskhet är varken en uppdatering eller en radering

    Att ett svar är inaktuellt betyder bara att en cache inte får återanvända det utan att först kontrollera. Det betyder inte att webbläsarens skärm uppdateras av sig själv, och det betyder inte att filen på ursprungsservern ändras eller raderas. På samma sätt betyder ett färskt svar inte att filen på servern inte har ändrats. Expires-huvudet, säger standarden, "does not imply that the original resource will change or cease to exist at, before, or after that time". Kalkylatorn räknar bara ut tidsaritmetiken för den cachade kopian.

    Färskhetstid och aktuell ålder

    Vilket värde som bestämmer färskhetstiden

    Enligt avsnitt 4.2.1 i RFC 9111 används den första träffen:

    Ordning Delad cache (CDN, proxy) Privat cache (webbläsare)
    1 s-maxage (s-maxage används inte)
    2 max-age max-age
    3 Expires − Date Expires − Date
    4 Om ingen finns saknas uttrycklig utgångstid Samma

    Så räknas den aktuella åldern ut

    Formlerna kommer från avsnitt 4.2.3 i RFC 9111:

    Kalkylatorn frågar inte efter tidpunkten då förfrågan skickades, så den sätter svarsfördröjningen (tiden från att förfrågan skickas till att svaret tas emot) till 0. På en anslutning med stor fördröjning kan den beräknade åldern bli lägre än den verkliga. Standarden tillåter också att enbart Age-huvudet plus fördröjningen används.

    Regler för inmatningen

    Andra Cache-Control-direktiv

    De används inte i beräkningen, men visas som anmärkningar om återanvändning.

    Exempel

    Inmatning Resultat
    max-age=3600, ingen Age, 1800 s efter mottagandet Färskhetstid 3600 s, aktuell ålder 1800 s, 1800 s återstår (färskt)
    Samma, vid exakt 3600 s Aktuell ålder 3600 s. Den är lika med färskhetstiden, så det är inaktuellt
    max-age=3600, Age=600, nyss mottaget Aktuell ålder 600 s, 3000 s återstår
    Delad cache med s-maxage=60, max-age=3600 Färskhetstid 60 s (max-age ignoreras)

    Bra att veta

    Källor och kontroller

    Följande kontrollerades mot standardernas fulla text den 1 november 2026:

    Kalkylatorn följer dessa avsnitt enbart för färskhet. Att klara den här beräkningen är inget påstående om att en produkt eller en server följer standarden.

    Vanliga frågor

    Vad händer när både max-age och Expires finns?

    max-age har företräde och Expires ignoreras (RFC 9111, avsnitt 5.3).

    Gäller s-maxage för en webbläsare?

    s-maxage är ett direktiv för delade cacher. En privat cache (en webbläsare) använder det inte.

    Vad är Age-huvudet?

    Det är antalet sekunder, skrivet av en cache på vägen, sedan svaret skapades eller senast kontrollerades hos ursprungsservern. Kalkylatorn använder det för att räkna ut den aktuella åldern.

    Försvinner eller uppdateras ett inaktuellt svar av sig självt?

    Nej. Inaktuellt betyder bara att en cache måste kontrollera innan den återanvänder svaret. Det uppdaterar inte skärmen och ändrar ingenting på ursprungsservern.

    Hur kan jag kontrollera en tidpunkt?

    Unix-tidsstämpelomvandlaren och Cron-uttrycksräknaren kan hjälpa till.