Interazione tra criteri di cache: durata massima e obsolescenza massima
Per garantire che all'applicazione client venga restituito il contenuto più aggiornato, l'interazione tra criteri di cache del client e requisiti di riconvalida del server determina sempre la creazione dei criteri di cache più conservativi. In tutti gli esempi di questo argomento vengono illustrati i criteri di cache per una risorsa memorizzata nella cache il 1° gennaio con scadenza il 4 gennaio.
Negli esempi seguenti il valore di obsolescenza massima (maxStale
) viene usato in combinazione con un valore di durata massima (maxAge
):
Se i criteri di cache prevedono l'impostazione di
maxAge
su 5 giorni e non specificano alcun valore permaxStale
, in base al valore dimaxAge
il contenuto può essere usato fino al 6 gennaio. In base ai requisiti di riconvalida del server, tuttavia, il contenuto scade il 4 gennaio. Poiché la data di scadenza del contenuto è più conservativa (antecedente), ha la precedenza rispetto ai criteri associati amaxAge
. Il contenuto scade quindi il 4 gennaio e deve essere riconvalidato anche se la durata massima non è ancora stata raggiunta.Se i criteri di cache prevedono l'impostazione di
maxAge
su 5 giorni e dimaxStale
su 3 giorni, in base al valore dimaxAge
il contenuto rimane valido fino al 6 gennaio, mentre in base al valore dimaxStale
è valido fino al 7 gennaio. Il contenuto viene quindi riconvalidato il 6 gennaio.Se i criteri di cache prevedono l'impostazione di
maxAge
su 5 giorni e dimaxStale
su 1 giorno, in base al valore dimaxAge
il contenuto rimane valido fino al 6 gennaio, mentre in base al valore dimaxStale
è valido fino al 5 gennaio. Il contenuto viene quindi riconvalidato il 5 gennaio.
Quando il valore di durata massima è inferiore alla data di scadenza del contenuto, prevale sempre il comportamento più conservativo per la memorizzazione nella cache e il valore di obsolescenza massima non ha alcun effetto. Gli esempi seguenti illustrano l'effetto prodotto dall'impostazione di un valore di obsolescenza massima (maxStale
) quando la durata massima (maxAge
) viene raggiunta prima della scadenza del contenuto:
Se i criteri di cache prevedono l'impostazione di
maxAge
su 1 giorno e non specificano alcun valore permaxStale
, il contenuto viene riconvalidato il 2 gennaio anche se non è ancora scaduto.Se i criteri di cache prevedono l'impostazione di
maxAge
su 1 giorno e dimaxStale
su 3 giorni, il contenuto viene riconvalidato il 2 gennaio e viene quindi applicata l'impostazione relativa ai criteri più conservativi.Se i criteri di cache prevedono l'impostazione di
maxAge
su 1 giorno e dimaxStale
su 1 giorno, il contenuto viene riconvalidato il 2 gennaio.