Che cosa devo fare per rendere i contenuti quali immagini, servito su HTTPS essere memorizzati nella cache sul lato client?

StackOverflow https://stackoverflow.com/questions/72358

  •  09-06-2019
  •  | 
  •  

Domanda

Sto usando Tomcat come un server e Internet Explorer 6 browser.Una pagina web nella nostra applicazione è di circa 75 immagini.Stiamo utilizzando SSL.Sembra essere molto lento nel caricamento di tutti i contenuti.Come posso configurare Tomcat in modo che IE cache le immagini?

È stato utile?

Soluzione

Se si sta servendo una pagina su https, quindi avrai bisogno di servire il contenuto statico o dinamico risorse su https (dallo stesso dominio, o di un altro dominio, anche su https) per evitare un avviso di sicurezza nel browser.

I contenuti scaricati su un canale sicuro non saranno scritti su disco per impostazione predefinita, la maggior parte dei browser e così vive nel browser cache di memoria, che è molto più piccolo rispetto la cache del disco.Questa cache scompare anche quando si chiude l'applicazione.

Detto tutto questo, ci sono cose che potete fare per migliorare la cachability per SSL attività all'interno di una singola impostazione del browser.Per cominciare, assicurarsi che tutte le attività si sono ragionevoli Scadenza e le intestazioni Cache-Control.Se tomcat è seduto dietro di apache, quindi utilizzare mod_expires per aggiungerli.Questo consentirà di evitare il browser per controllare se l'immagine è cambiata tra le pagine

<Location /images>
   FileEtag none
   ExpiresActive on
   ExpiresDefault "access plus 1 month"
</Location>

In secondo luogo, e questo è specifico per MSIE e Apache, la maggior parte di apache ssl configurazioni includono queste righe

SetEnvIf User-Agent ".*MSIE.*" \
     nokeepalive ssl-unclean-shutdown \
     downgrade-1.0 force-response-1.0

Che disabilita il keepalive per TUTTI MSIE agenti.IMHO questo è troppo conservatore, l'ultimo browser MSIE per problemi di uso di SSL sono stati 5.x e versioni vulnerabili di 6.0 pre SP2, che sono entrambi molto rara oggi.Di seguito è più permissivo e non disabilitare i keepalive quando si utilizza MSIE e SSL

BrowserMatch "MSIE [1-4]" nokeepalive ssl-unclean-shutdown downgrade-1.0 force-response-1.0
BrowserMatch "MSIE [5-9]" ssl-unclean-shutdown

Altri suggerimenti

Alcuni browser cache SSL contenuto.Firefox 2.0+ non SSL cache risorse su disco per impostazione predefinita (per una maggiore privacy).Firefox 3+, non di cache di loro su disco, a meno che il Cache-control:pubblico intestazione viene visualizzata.

Quindi, impostare la Scadenza:intestazione correttamente e Cache-control:pubblico.ad es.

<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>

Se un sacco di quei 75 immagini sono icone o immagini che appaiono su ogni pagina, è possibile utilizzare i CSS sprite di ridurre drasticamente il numero di richieste HTTP e quindi caricare la pagina più veloce:

http://www.alistapart.com/articles/sprites/

75 immagini suona come un sacco.Se si tratta di un sacco di immagini di piccole dimensioni, ci sono modi di accorpare molte immagini come uno, si potrebbe vedere se è possibile trovare una libreria che fa.Inoltre, probabilmente si può forzare le immagini nella cache in qualcosa di simile google gears.

Contenuto, servito su una connessione HTTPS non viene mai memorizzato nella cache nel browser.Non si può fare molto su di esso.

Di solito, le immagini del sito web non sono molto sensibili e sono serviti su HTTP per questo motivo.

La prima risposta è corretta che nulla viene memorizzato nella cache quando si utilizza HTTPS.Tuttavia, quando si costruire la vostra pagina web, si potrebbe considerare come riferimento le immagini da URL.In questo modo è possibile specificare le immagini provenienti da una fonte HTTP, e sarà(probabilmente) essere cache sarebbe dal browser.

Forse si può aggiungere un ulteriore server/sottodominio che fornisce le immagini senza https?

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top