Mr. Webmaster Menu
  • Home
  • Cerca
  • Didattica
    • A
    • Android
    • Apache
    • Apple
    • ASP
    • ASP.Net
    • C
    • Cloud
    • CMS
    • CSS
    • D
    • Database
    • E
    • Editor
    • G
    • Grafica
    • H
    • Hosting
    • HTML
    • J
    • Java
    • Javascript
    • jQuery
    • L
    • Leggi e Fisco
    • Linux
    • M
    • Mobile
    • MySQL
    • N
    • NET Framework
    • P
    • Photoshop
    • PHP
    • Primi Passi
    • Programmazione
    • R
    • Reti
    • Ruby
    • S
    • Sicurezza
    • Social Media
    • SQL
    • W
    • Web Design
    • Web Marketing
    • Web Server
    • Windows
    • WordPress
    • X
    • XML
    • Di tendenza
    • Android Studio
    • Bootstrap
    • GDPR
    • Hosting Wordpress
    • Node.js
    • Registrazione Domini
  • Download
    • Software
    • Script
    • Plugin CMS
    • Flash Movies
    • Sound Loops
    • Templates
    • Web Grafica
    • Font Gratis
  • Risorse
    • SEO Tools
    • WebApps
  • News
  • Blog
  • Forum
  • Network
    • Toolset.it
    • SiteMarket.it
    • Codalo.it
  • Corsi on-line
Mr. Webmaster → PHP → Articoli → Disabilitare la cache in PHP

Disabilitare la cache in PHP

  • CommentaScrivi un commento
  • ForumDiscuti sul forum
  • PrecedenteGestire le checkbox con PHP
  • SuccessivoGestire e correggere gli errori più comuni PHP
  • Pubblicato il
  • 07/07/2014
  • Autore
  • Massimiliano Bossi

La cache è un componente fondamentale del protocollo HTTP in quanto consente di ottimizzare le performance della navigazione web. In pratica, mediante l'uso della cache HTTP, il browser "viene invitato" (o meno) ad utilizzare copie locali di alcuni elementi remoti al fine di restituire, in modo più veloce ed efficente, talune risorse remote visitate in precedenza.

In poche parole quando visitiamo una pagina web il nostro browser (a seconda di una serie di fattori) memorizza alcuni elementi della pagina (come ad esempio le immagini, i fogli di stile, gli script, ecc.) in modo tale da non doverli scaricare nuovamente nel momento in cui l'utente tornerà su quella stessa pagina web.

Continua dopo la pubblicità...

Come funziona la cache HTTP?

Le "istruzioni" circa l'utilizzo della cache vengono ricevute dal browser all'interno dello scambio di informazioni col server che restituisce la risorsa remota: attraverso il protocollo HTTP, infatti, il client ed il server "discutono" di varie cose tra cui, appunto, la gestione della cache (in assenza di istruzioni esplicite la cache verrà governata in base alle impostazioni settate nel browser dell'utente).

Quando viene richiesta una pagina presente in cache, infatti, il browser invia una richiesta HTTP al server chiedendo se il file è stato modificato (if-modified-since) dalla data in cui l'ha scaricato e salvato in locale. A questo punto il server può rispondere con:

  • 304 Not Modified
    Il file non è stato modificato, quindi può essere utilizzata la versione salvata in cache;
  • 200 OK
    Il file è stato modificato ed è necessario scaricarlo nuovamente.

Disabilitare la cache

Se è vero che il meccanismo di caching risulta essere molto importate per una comunicazione efficiente, è altrettanto verò che in talune circostanze ciò può creare dei problemi: si pensi, ad esempio, ad una pagina dinamica che cambia continuamente il suo contenuto. Cosa succederebbe se questa venisse salvata in cache e ripresentata all'utente sempre uguale?

Una simile situazione può capitare quando lo scambio di informazioni di cui abbiamo parlato poco sopra, per qualche motivo, non funziona a dovere. Per questo, in talune circostanze, può essere utile disabilitare la cache al fine di escludere che una data risorsa venga memorizzata in locale nel computer client.

Se state sviluppando in PHP potete ovviare al problema mediante la funzione header() per inviare alcuni settaggi espliciti relativamente alla gestione della cache all'interno delle intestazioni HTTP.

Il campo header di HTTP supporta due informazioni molto importanti in tal senso: Expires e Last-Modified: il primo comunica al browser una data di scadenza della risorsa, mentre il secondo è utilizzato per esplicitare la data di ultima modifica dei contenuti.

Oltre a questi possono essere inviati i parametri Cache-Control (HTTP/1.1) e Pragma (HTTP/1.0) per inviare al browser una richiesta esplicita di non salvare la risorsa nella cache.

Vediamo un esempio completo di header PHP per disabilitare la cache:

header("Expires: on, 01 Jan 1970 00:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");

Inviando questi header (prima della generazione dell'output, ovviamente) il client non salverà la pagina PHP in cache e, ad ogni richiesta, la scaricherà nuovamente dal server.

Naviga tra i contenuti

← Gestire le checkbox con PHP
→ Gestire e correggere gli errori più comuni PHP

Commenti

I commenti sono sottoposti alle linee guida di moderazione e prima di essere visibili devono essere approvati da un moderatore.
  • Facebook
  • Twitter
  • Google+
  • YouTube
  • Feed RSS
Frequenta i nostri corsi
  • Corso LinuxCorso Linux
    Guida completa al sistema open-source. A partire da 39 €
  • Corso MySQLCorso MySQL
    Gestione del database open-source. A partire da 39 €
  • Corso PHPCorso PHP
    Creare siti web dinamici avanzati con PHP e MySQL. A partire da 49 €
Vedi anche...
  • Errori PHP Undefined index e Undefined offset: cosa sono e come risolverli
  • Form PHP: gestire i dati inseriti nei moduli del sito
  • Gestire le dipendenze in PHP con Composer
  • PHP cURL: interagire con pagine web e risorse remote
  • Un sistema di permessi in PHP con operatori Bitwise
Guide
  • Guida CodeIgniter
  • Guida PHP
  • Guida PHP e MySQL
  • Guida PhpMyAdmin
Mr. Webmaster
  • RSS
  • Contattaci
  • Torna su
IKIweb
© 2003 - 2019 Mr. Webmaster
Mr. Webmaster ® è un marchio registrato.
E' vietata ogni forma di riproduzione.
IKIweb Internet Media S.r.l. - P.IVA 02848390122

Parliamo di noi: chi siamo / cronologia
Contatti: pubblicità / contattaci / segnala abusi
Note Legali: condizioni d'uso / privacy / cookie
Altro: sondaggi / feed