2012-02-19 15 views
13

Actualmente uso Akamai como CDN, pero noté que el navegador también almacena contenido en caché. Es genial que el navegador guarde en caché images/css/js, pero me gustaría saber si hay una forma de no de caché en el navegador, sino de almacenar en caché en Akamai.Caché en CDN pero no en el navegador

Ahora, en este momento de mi origen que enviar cabeceras como esto:

Cache-Control: public, must-revalidate, max-age=300 
Expires: Sun, 19 Feb 2012 19:04:30 GMT 
Date: Sun, 19 Feb 2012 18:59:30 GMT 

Akamai rinde homenaje a estas cabeceras, sino que también les pasa de vuelta al usuario. Esto hace que el navegador también almacene el contenido en caché.

Esto funciona muy bien la mayor parte del tiempo, pero también tenemos cierta lógica CDN de que si un usuario tiene una cookie iniciada, pase por alto el caché CDN y vaya directo al origen.

Por lo tanto, si un usuario no autorizado tiene un clic en "inicio de sesión", se envían a través del proceso de inicio de sesión y se vuelven a la misma página. Aunque la CDN solicitaría de origen esta página, el navegador realmente solicita la misma página nuevamente y parece que el inicio de sesión no funcionó.

Ahora, puedo forzar que un proceso de inicio de sesión agregue un parámetro de consulta como? L = 1 o algo así, pero tiene que haber una manera mejor.

Estoy tentado de ver si Akamai puede sobrescribir el encabezado Cache-Control a un valor codificado no-caché, pero me pregunto si hay una forma de hacerlo en origen.

Gracias!

+1

¿Por qué no desea que el navegador guarde en caché el contenido? –

+2

Porque quiere que el navegador vuelva a descargar la página cuando el usuario inicie sesión. Probablemente para que el usuario vea una página personalizada y no el mismo html que todos los demás. –

Respuesta

1

Akamai proporciona un medio para establecer diferentes comportamientos de almacenamiento en caché dentro de los servidores de Akamai frente al control de caché habitual: y caduca: encabezados. Hay encabezados personalizados que puede pasar desde los servidores de origen que los servidores Edge de Akamai comprenden, obedecen y eliminan cuando pasan el contenido al navegador. Esta información está disponible en la documentación del portal de Akamai.

En su caso, desea que el comportamiento cambie dependiendo de si un usuario está conectado o no. Puede solicitar que el objeto omita la caché cuando el objeto se envía al navegador para los usuarios que han iniciado sesión o puede usar los valores de las cookies para modificar la clave de caché (cómo hace referencia el objeto al servidor de Akamai), pero es posible que necesite para hablar con Akamai por ayuda aquí.

Deberá tener mucho cuidado aquí para asegurarse de que los usuarios de la memoria caché Akamai no puedan ver algo personalizado. En caso de duda, errar por el lado de la precaución y no permita que Akamai guarde en caché el objeto.

19

Akamai tiene un encabezado llamado "Edge-control" del mismo formato que Cache-Control. Puede especificar el control Edge con una edad máxima positiva y luego establecer Cache-Control en "no-cache, no-store". Esto debería obtener lo que quieres.

Al enviar el encabezado de control Edge para una página que quiero en caché, siempre precede el valor con "! No-store" para asegurarme de que Akamai lo almacena en caché. Por lo tanto, el formato sería "! No-store, max-age = 1234" por ejemplo.

+0

Caso de uso relevante - https://community.akamai.com/thread/2704 –

Cuestiones relacionadas