2009-07-27 13 views
6

Sono stato a guardare gli standard - ma non ero del tutto sicuro di quanto segue:Max-age e 304 Not Modified lavorazione

Se abbiamo una variante (risorse, un'immagine, una pagina, ecc) che viene servita con un'impostazione della cache di max-age = 259200 (3 giorni) e il server sta elaborando anche gli ETags e le ultime date modificate - cosa succederà quando verrà raggiunta la massima età - ma la risorsa non è stata modificata?

Quello che spero accada è che dopo 3 giorni il client richiederà di nuovo la risorsa e se non è stata modificata riceverà una risposta 304 non modificata. Se la risposta di controllo della cache (durante la risposta 304) contiene ancora max-age = 259200, allora spero che il client continui a utilizzare la sua copia cache locale e non richieda di nuovo per altri 3 giorni.

Quello che temo succederà è che una volta raggiunta la massima età il client non memorizzerà più nella cache la risorsa - facendo una nuova richiesta ogni volta che la risorsa viene caricata - seguita da una risposta 304 non modificata se il la risorsa non è stata modificata. Ad esempio, stiamo ricevendo richieste http per ogni utilizzo anziché utilizzare la cache locale per altri 3 giorni.

Pensieri?

risposta

3

Cache per altri 3 giorni. RFC 2616 10.3.5:

Se una cache utilizza una ricevuta 304 risposta ad aggiornare una voce della cache, la cache DEVE aggiornare la voce per riflettere eventuali nuovi valori dei campi indicati nella risposta.

Details about age calculation.

+0

Grazie! Questo mi insegnerà a leggere le specifiche un po 'più da vicino e ad usare una dimensione del carattere più grande :-). –

Problemi correlati