2012-01-20 8 views
21

Sto tentando di impostare correttamente la memorizzazione nella cache e ho impostato le intestazioni di Scadenza per 365 giorni nel futuro che funziona correttamente ma non viene visualizzato correttamente in IE9. Qualcuno sa perché?Caching del browser - Perché IE9 mostra sempre http 304 quando in realtà non ha colpito la rete?

Quando si visita qualsiasi sito Web in IE9 (ad esempio www.google.com), quindi fare clic su Invio nella barra degli indirizzi per rivisitarlo con il caching completo che mostra un sacco di 304 in più che Fiddler non mostra.

Guardando nella scheda Network network (su F12), IE9 mostra che ha ricevuto 304 risposte non modificate per file CSS e JS e 3 immagini (possibilmente immagini con date modificate entro il mese scorso circa - le altre 30 immagini non mostrate sono più vecchi).

Tuttavia, secondo Fiddler e guardando i registri IIS sul server sul sito Web che sto sviluppando, non ha effettivamente effettuato queste richieste. La timeline della rete IE9 mostra questi 302 grigi come nessun tempo di attesa e "< 1 ms" tempo di risposta - mentre se colpisco F5 sono anche 302s grigi ma visualizzati come diversi millisecondi in attesa e tempo di download (e colpiscono la rete).

Quindi perché l'ispettore di rete IE9 ritiene che abbia emesso una richiesta condizionale per questi? Ha effettivamente emesso una richiesta che era soddisfatta all'interno della pila di rete da qualche parte, prima che arrivasse a Fiddler?

Chrome mostra tutte le richieste, incluse tutte le immagini, come grigio 200 (dalla cache) a parte la pagina stessa che è un 200 nero (che è corretto secondo i registri di Fiddler e IIS).

Firebug mostra grigio 200 OK per i CSS e JS e stranamente una sola immagine (inoltre correggere assumendo grigi 200 mezzi dalla cache - ma perché mostra solo queste risorse e non tutte le altre immagini?)

sono stato leggendo i post sul blog di Eric Lawrence sulla cache di IE9 e sullo stack di rete, ma lui non menziona questo strano comportamento.

risposta

22

Giusto per essere chiari, se non lo si vede in Fiddler, non ha colpito la rete.

La scheda Rete IE presenta un numero di bug, uno dei quali è che è difficile distinguere tra un hit della cache soddisfatto localmente (ad es. Nessun hit della rete) e uno che richiede la riconvalida con il server (ad es.).

Questo perché la cache viene ridotta in WinINET, ben al di sotto della scheda Rete, che risiede sopra URLMon.

Detto questo, ecco un altro riferimento si consiglia di controllare: IEInternals Blog on Conditional Requests

+0

OK, grazie Eric, sì, stavo pensando che potrebbe essere un bug relativo alla pila IE essere più complicato con WinInet e tutto il resto. Grazie per quel post, non avevo letto quello. –

+0

Quel collegamento sembra essere rotto, qualsiasi idea su dove è stato spostato il contenuto? –

+1

@MartinBrown corretto. – EricLaw