Ciao,
quando aggiorni la pagina, anche se il browser ha messo in cache l'immagine x.gif, esso effettua comunque una richiesta al server per quella risorsa. I 16 millisecondi che stai riscontrando rappresentano il tempo trascorso tra l'inizio della richiesta e la risposta del server. La risposta "304 Not Modified" indica al browser che il file non è cambiato dall'ultima volta e che quindi il browser è libero di riutilizzare la versione che ha in cache.
Il contenuto binario di x.gif quindi NON è stato ritrasferito dal server e il meccanismo di caching sta funzionando correttamente.
Se non ottieni alcun miglioramento è perché x.gif è probabilmente un'immagine molto piccola o perché stai utilizzando una connessione molto veloce (sei in rete locale?).
In pratica stai osservando che il tempo necessario ad ottenere una risposta dal server è superiore a quello che serve a trasferire l'intero contenuto di x.gif. Tante piccole immagini come x.gif causeranno tante connessioni al server e, conseguentemente, tante attese da 16 millisecondi prima di ottenere una risposta.
E' per questo motivo che oggi i web designer utilizzano gli
sprites, ovvero un'unica immagine gif o png che contiene al suo interno tante iconcine affiancate. Vedi per esempio
questo di Google o
questo di Facebook. Così, con una sola richiesta e grazie all'utilizzo dei CSS, puoi pagare il "costo" di connessione al server una volta sola.
La stessa cosa si usa fare anche con vari file javascript e css, condensando dinamicamente il loro contenuto in un solo file .js o .css. Se ti interessa anche questo tipo di ottimizzazione puoi dare un'occhiata a
Combres che è una libreria per .NET che serve a appunto per combinare, minificare e comprimere questo tipo di file.
Comunque, tornando all'argomento: per apprezzare l'effettivo funzionamento della cache dovresti fare un'esperimento con un'immagine jpg abbastanza grande, diciamo pesante un paio di megabytes. Data la dimensione dell'immagine, al primo caricamento dovrai attendere qualche secondo ma al successivo aggiornamento di pagina la vedrai apparire subito (o quasi).
Da Firebug, nel riquadro "Net", se poggi il mouse sopra la barretta colorata vedrai apparire un tooltip che ti darà informazioni più precise sui tempi. In particolare presta attenzione alle porzioni di colore viola (il tempo di attesa prima che inizi la risposta) e al grigio (tempo impiegato a trasferire i dati).
ciao
Modificato da BrightSoul il 15 dicembre 2011 20.59 -