2011-01-25 8 views
6

È possibile forzare in qualche modo una risposta di 200 (cache) anziché una 304 non modificata per i file statici? In tal caso, potresti potenzialmente risparmiare un sacco di richieste del server e accelerare notevolmente il tempo di caricamento per i visitatori di ritorno.Nginx - risposta della cache "force" 200 anziché 304

risposta

1

Impostare la direttiva expires in Nginx nelle posizioni in cui si server i file statici da. I browser non si preoccuperanno di ricontrollare il server fino al raggiungimento del tempo di scadenza. A quel punto, il server potrebbe comunque inviare una risposta 304 se il file statico non è stato modificato e il tempo di scadenza deve essere raggiunto prima che i browser tornino a controllare.

A proposito, il codice di risposta 200 indica semplicemente che la risorsa richiesta viene restituita. Non ha nulla a che fare con l'eventuale invio di intestazioni di cache con la risposta HTTP o meno.

+0

devo scade impostata su 2 settimane, ma gli strumenti dev di Google Chrome mostra ancora 304 richieste invece di 200 codici. Sta dando false informazioni? – ustun

4

Ho trovato che Expires da solo non imposta correttamente il comportamento. Qui di seguito è stato un sicuro fuoco:

# Set cache 
expires 1M; 
add_header Pragma public; 
add_header Cache-Control "public"; 

Questo va nel blocco posizione desiderata ..

Penso anche che ci sia un sacco di fuorvianti informazioni là fuori su questo .. Che 200 è in qualche modo lo stesso di 200 (cache).

Dalla mia comprensione:

200 - richiesta del server - Trasferimento OK 200 (cache) - OK - nessuna richiesta di server (dalla cache) 304 - richiesta del server - nessun trasferimento (non modificati)

200 (cache), a quanto ho capito, NON effettua alcuna richiesta server.

0

200 non è una risposta cache; indica successo e richiede la risposta per contenere il risultato. 304 indica una risorsa non modificata; vale a dire che ce l'hai già, quindi non viene restituito nulla. Quindi, quello che stai suggerendo dovrebbe causare il fallimento di tutti i 304 masquerading come 200's. Anche se non risparmierai le tue richieste o non accelerai con le 200 risposte false.

EDIT: 200 in alcuni casi significa che la risorsa è stata presa dalla cache con successo ...

Problemi correlati