Estoy utilizando Tomcat como servidor e Internet Explorer 6 como navegador. Una página web en nuestra aplicación tiene alrededor de 75 imágenes. Estamos usando SSL. Parece ser muy lento al cargar todo el contenido. ¿Cómo puedo configurar Tomcat para que IE almacene en caché las imágenes?¿Qué debo hacer para que el contenido, como las imágenes servidas a través de HTTPS, se almacene en la memoria caché del lado del cliente?
Respuesta
Si está publicando una página en https, deberá enviar todos los recursos estáticos o dinámicos incluidos a través de https (ya sea del mismo dominio u otro, también a través de https) para evitar una advertencia de seguridad en el navegador.
El contenido entregado a través de un canal seguro no será escrito en el disco de forma predeterminada por la mayoría de los navegadores y por lo tanto vive en la memoria caché de los navegadores, que es mucho más pequeña que en la memoria caché del disco. Este caché también desaparece cuando la aplicación se cierra.
Habiendo dicho todo eso, hay cosas que puede hacer para mejorar la capacidad de caché de los activos de SSL dentro de una única configuración de navegador. Para empezar, asegúrese de que todos sus activos tengan encabezados de Expiraciones y Control de caché razonables. Si tomcat está sentado detrás de apache, use mod_expires para agregarlos. Esto evitará que el navegador de tener que comprobar si la imagen ha cambiado entre las páginas
<Location /images>
FileEtag none
ExpiresActive on
ExpiresDefault "access plus 1 month"
</Location>
En segundo lugar, y esto es específico para MSIE y Apache, la mayoría de las configuraciones SSL de Apache incluyen estas líneas
SetEnvIf User-Agent ".*MSIE.*" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
que desactiva keepalive para TODOS los agentes de MSIE. En mi humilde opinión, esto es demasiado conservador, los últimos navegadores de MSIE que tuvieron problemas al usar SSL fueron las versiones 5.xy no parcheadas de 6.0 pre SP2, las cuales son muy poco comunes ahora. El siguiente es más indulgente y no desactivar los mensajes de actividad cuando se usa MSIE y SSL
BrowserMatch "MSIE [1-4]" nokeepalive ssl-unclean-shutdown downgrade-1.0 force-response-1.0
BrowserMatch "MSIE [5-9]" ssl-unclean-shutdown
Contenido servido a través de una conexión HTTPS nunca se almacena en caché en el navegador. No puedes hacer mucho al respecto.
Por lo general, las imágenes en su sitio web no son muy delicadas y se brindan a través de HTTP por este mismo motivo.
75 imágenes suena como mucho. Si se trata de una gran cantidad de imágenes pequeñas, hay maneras de agrupar muchas imágenes como si fueran una, puede ver si puede encontrar una biblioteca que lo haga. También es probable que forzar a las imágenes a guardarse en caché en algo como google gears.
La primera respuesta es correcta: nada se almacena en caché cuando se usa HTTPS. Sin embargo, cuando construya su página web, puede considerar hacer referencia a las imágenes por sus URL individuales. De esta forma, puede especificar que las imágenes se originen a partir de una fuente HTTP, y el navegador las almacenará (probablemente).
Algunos navegadores almacenar en caché el contenido SSL. Firefox 2.0+ no almacena en caché recursos SSL en el disco de forma predeterminada (para mayor privacidad). Firefox 3+ no los almacena en el disco a menos que aparezca el encabezado Cache-control: public.
Establezca el encabezado Expires: correctamente y Cache-control: public. p.ej.
<Files ~ "\.(gif|jpe?g|png|ico|css|js|cab|jar|swf)$">
# Expire these things
# Three days after access time
ExpiresDefault "now plus 3 days"
# This makes Firefox 3 cache images over SSL
Header set Cache-Control public
</Files>
Tal vez pueda agregar un servidor/subdominio adicional que proporcione las imágenes sin https?
Si muchas de esas 75 imágenes son iconos o imágenes que aparecen en cada página, se pueden utilizar sprites CSS para reducir drásticamente el número de peticiones HTTP y así cargar la página más rápido:
- 1. ¿Cómo puedo asegurarme de que el contenido estático se almacena en caché del lado del cliente?
- 2. Caché de imagen del lado del cliente con ASP.Net
- 3. caché de archivos del lado del cliente
- 4. Caché del lado del cliente en GWT
- 5. ¿Debo hacer solicitudes de API del lado del servidor o del lado del cliente?
- 6. ¿Cableado del almacenamiento en caché del lado del cliente WCF?
- 7. almacenamiento en caché de imágenes servidas por servlet
- 8. Deshabilitar el almacenamiento en caché del lado del cliente
- 9. Enrutamiento del lado del cliente. ¿Como funciona?
- 10. ¿Cómo usar las reglas de validación tanto del lado del cliente como del lado del servidor?
- 11. Mejores prácticas para el lado del cliente frente a las redirecciones del lado del servidor: cuándo usar qué?
- 12. Comprimir imágenes en el lado del cliente antes de cargar
- 13. ¿Es buena idea la representación de IU del lado del cliente a través de Javascript?
- 14. Web Charting, lado del servidor o del lado del cliente?
- 15. procesamiento de imágenes en el lado del cliente
- 16. Método del lado del servidor y del lado del cliente
- 17. ¿Cómo borrar la memoria caché del navegador del lado del servidor?
- 18. ¿Es posible detectar imágenes gif animadas del lado del cliente?
- 19. Sesiones del lado del cliente
- 20. librería javascript para el almacenamiento del lado del cliente con la sincronización del lado del servidor
- 21. procesamiento paralelo frente a procesamiento del lado del cliente + ajax?
- 22. ¿Por qué necesitamos la validación del lado del servidor y del lado del cliente para las aplicaciones web?
- 23. Descripción de URL de objetos para archivos del lado del cliente y cómo liberar la memoria
- 24. Integrar Validación del lado del cliente
- 25. Encriptación del lado del cliente a través de HTTP con Diffie-Hellman Key Exchange y AES
- 26. ¿Cómo puedo desactivar el almacenamiento en memoria caché del lado del cliente y del proxy en ASP.NET MVC?
- 27. Lado del cliente incluye en las páginas HTML
- 28. Idiomas del lado del cliente
- 29. ¿Qué biblioteca debo usar para la manipulación de imagen del lado del servidor en Node.JS?
- 30. Registradores en el lado del cliente GWT