2011-01-25 11 views
6

¿Es posible de alguna manera forzar una respuesta de 200 (caché) en lugar de una 304 no modificada para archivos estáticos? De ser así, podría ahorrar una gran cantidad de solicitudes de servidor y acelerar el tiempo de carga de manera considerable para los visitantes que regresan.Nginx - "force" 200 respuesta de caché en lugar de 304

Respuesta

1

Establezca la directiva expires en Nginx en las ubicaciones donde servidor sus archivos estáticos. Los navegadores no se molestarán en volver a consultar con el servidor hasta que se cumpla el tiempo de caducidad. En ese punto, el servidor aún puede enviar una respuesta 304 si el archivo estático no ha cambiado y el tiempo de caducidad deberá alcanzarse antes de que los navegadores vuelvan a verificar.

Por cierto, el código de respuesta 200 simplemente significa que se está devolviendo el recurso solicitado. No tiene nada que ver con si los encabezados de almacenamiento en caché se envían con la respuesta HTTP o no.

+0

tengo expira establece en 2 semanas, pero las herramientas dev de Google Chrome sigue mostrando 304 peticiones en lugar de 200 códigos. ¿Está dando información falsa? – ustun

4

He encontrado Expires solo no establece correctamente el comportamiento. A continuación ha sido un éxito seguro:

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

Esto va en el bloque de ubicación deseada ..

También creo que hay una gran cantidad de información engañosa por ahí en este .. Eso 200 es de alguna manera el mismo que 200 (caché).

Desde mi entendimiento:

200 - solicitud del servidor - la transferencia OK 200 (caché) - OK - no hay petición del servidor (de caché) 304 - solicitud del servidor - no hay transferencia (no modificado)

200 (caché) como yo entiendo, NO hace una solicitud de servidor en absoluto.

0

200 no es una respuesta de caché; indica éxito y requiere que la respuesta contenga el resultado. 304 indica un recurso no modificado; es decir, ya lo tienes, por lo que no se devuelve nada. Entonces, lo que sugieres debe hacer que todos los 304 se hagan pasar por disfrazados como 200's para que fallen. Incluso si no va a guardar ninguna solicitud o acelerar nada con falsas 200 respuestas.

EDIT: 200 en algunos casos significa que el recurso ha sido tomado de la memoria caché con éxito ...

Cuestiones relacionadas