viernes, 5 de junio de 2009

Control de cache en conexiones seguras

Hace poco me salía el siguiente error cuando descargaba un archivo por medio de un servlet desde un sitio seguro a través de Internet Explorer.



Extrañamente, en Firefox este error no se presentaba.
Después de buscar un rato (creo que fue más de un rato) a qué se debía el error, encontré que el problema parece ser un bug de IE (que raro!) y se genera por el uso de una etiqueta que había puesto en el encabezado de la respuesta. La etiqueta que yo tenía es:

Pragma: null

Internet Explorer tiene problemas con este encabezado cuando el sitio es seguro. La solución fue demasiado sencilla, eliminar la etiqueta en cuestión y utilizar la siguiente:

Cache-Control: private

En mi caso puse las cabeceras así :
response.setHeader("Cache-Control", "private");
response.setHeader("Pragma", null);
response.setHeader("Expires", null);
Y ahora sí funciona.

No hay comentarios.: