15 Gennaio 2023

Codici di stato HTTP CloudFlare cf-cache-status

Capire i codici di stato HTTP di CloudFlare cf-cache-status per comprendere il corretto funzionamento della Cache.

Cloudflare CF Status Banner

CloudFlare è un sistema di Content Delivery Network (CDN) che offre una serie di funzionalità per migliorare le prestazioni del sito web e la sicurezza. Tra queste, la funzionalità di reverse proxy è una delle più importanti poiché consente di nascondere l’indirizzo IP del server originale e di proteggere il sito web da attacchi DDoS e altre minacce.

Inoltre, utilizzando CloudFlare come reverse proxy si può beneficiare della sua funzionalità di caching: essa permette di salvare una copia della risorsa richiesta nei server di CloudFlare, in modo da evitare di dover sempre fare richiesta al server originale, migliorando così le prestazioni del sito web, poiché consente di ridurre la latenza e aumentare la velocità di caricamento delle pagine. Tuttavia, capire come funziona la cache di CloudFlare e come interpretare i codici di stato può essere complesso.

In questo articolo ci concentreremo su un aspetto specifico di CloudFlare, ovvero i codici di stato della cache.

Come funziona CloudFlare tramite reverse proxy.

La funzionalità di reverse proxy di CloudFlare si basa su NGINX, che consente di nascondere l’indirizzo IP del server originale e di proteggere il sito web da attacchi DDoS e altre minacce. Tuttavia, recentemente CloudFlare ha iniziato una migrazione dal reverse proxy NGINX a Pingora, una tecnologia interna di Cloudflare, per questioni di performance. L’obiettivo di questa migrazione è quello di fornire una maggiore flessibilità e performance per la gestione delle richieste, soprattutto per quanto riguarda la gestione degli attacchi DDoS.

Un reverse proxy è un sistema che funge da intermediario tra il client e il server originale. Quando un client effettua una richiesta, questa viene indirizzata al reverse proxy, che a sua volta la inoltra al server originale. Il reverse proxy riceve quindi la risposta dal server originale e la inoltra al client.

Pingora Reverse Proxy Scheme

Risposte cf-cache-status e relativo significato

La risposta cf-cache-status fornita da CloudFlare è un indicatore importante per capire come la richiesta è stata gestita dalla cache. Ci sono diversi codici di stato possibili, tra cui HIT, MISS, EXPIRED, BYPASS, DYNAMIC e STALE, ognuno dei quali indica una situazione specifica. In questo articolo, andremo a esaminare in dettaglio cosa significano questi codici di stato e come interpretarli per ottimizzare le prestazioni del sito web utilizzando CloudFlare.

cloudflare-cdn-header-cf-cache-status

I codici di stato di CloudFlare sono un insieme di valori che indicano lo stato della cache di una richiesta. Questi valori vengono restituiti come parte dell’intestazione HTTP “cf-cache-status” e possono essere utilizzati per comprendere come CloudFlare sta gestendo le richieste al tuo sito.

I valori più comuni per l’intestazione “cf-cache-status” sono:

  • HIT: questo indica che la richiesta è stata servita dalla cache di CloudFlare. Ciò significa che CloudFlare ha rilevato la richiesta e l’ha servita senza doverla inoltrare al tuo server originale.
  • MISS: questo indica che la richiesta non è stata trovata nella cache di CloudFlare e quindi è stata inoltra al tuo server originale per essere elaborata.
  • EXPIRED: questo indica che la richiesta è stata servita da una risorsa nella cache di CloudFlare, ma che la risorsa è scaduta e deve essere aggiornata dal tuo server originale.
  • BYPASS: questo indica che CloudFlare ha deciso di bypassare la cache per questa richiesta e di inoltrarla direttamente al tuo server originale. Ciò può accadere in caso di richieste che non possono essere cacheate, come quelle effettuate tramite metodo POST.

Inoltre, ci sono altri valori meno comuni come “DYNAMIC“, “STALE” and “UPDATING” che possono indicare lo stato della cache della richiesta in dettaglio.

Cosa significa cf-cache-status: HIT ?

Il termine HIT nella risposta cf-cache-status di CloudFlare indica che la richiesta è stata servita dalla cache di CloudFlare, ovvero CloudFlare ha utilizzato una copia della risorsa presente nella propria cache per servire la richiesta. Ciò consente di evitare di inoltrare la richiesta al server originale, migliorando le prestazioni e riducendo la latenza, ovvero il Time To First Byte o TTFB.

Quando CloudFlare riceve una richiesta, essa controlla prima la propria cache per vedere se una copia della risorsa richiesta è già presente. Se la copia è presente e ancora valida, CloudFlare la utilizza per servire la richiesta e restituisce una risposta HIT.

Cosa significa cf-cache-status: MISS ?

Il termine MISS nella risposta cf-cache-status di CloudFlare indica che la richiesta non è stata servita dalla cache di CloudFlare e quindi è stata inoltrata al server originale per ottenere la risorsa richiesta. Ciò può accadere in diversi casi, ad esempio quando la risorsa non è presente nella cache di CloudFlare oppure quando la copia presente nella cache è scaduta. In questi casi, CloudFlare invierà la richiesta al server originale e salverà una copia della risposta nella propria cache per future richieste. Ciò consente di ridurre il carico sul server originale e migliorare le prestazioni per le richieste successive. La prossima volta che si accede a questa risorsa, il suo stato dovrebbe essere HIT.

Cosa significa cf-cache-status: EXPIRED ?

Il termine EXPIRED nella risposta cf-cache-status di CloudFlare indica che la richiesta è stata servita da una copia della risorsa presente nella cache di CloudFlare, ma che questa copia è scaduta. Ciò significa che CloudFlare ha utilizzato una copia della risorsa presente nella propria cache, ma che questa copia non è più valida poiché il suo periodo di validità è scaduto. In questo caso, CloudFlare invierà una nuova richiesta al server originale per ottenere una copia aggiornata della risorsa e salverà una copia della risposta nella propria cache per future richieste. Ciò consente di mantenere la cache di CloudFlare aggiornata e di garantire che le richieste siano sempre servite con la versione più recente della risorsa.

Cosa significa cf-cache-status: BYPASS ?

Il termine BYPASS nella risposta cf-cache-status di CloudFlare indica che la richiesta non è stata servita dalla cache di CloudFlare e quindi è stata inoltrata al server originale per ottenere la risorsa richiesta. Questo può accadere per diverse ragioni, ad esempio:

  • CloudFlare può essere configurato per bypassare la cache per determinate richieste, come quelle effettuate da utenti autenticati o da indirizzi IP specifici.
  • La richiesta può essere di tipo POST, PUT, DELETE, cioè metodi di richiesta che non possono essere gestiti dalla cache.
  • La risorsa può avere una etichetta di cache specifica che indica a CloudFlare di non memorizzarla nella cache
  • La risorsa potrebbe avere una durata di vita breve e quindi non sarebbe opportuno salvarla nella cache

Bypassare la cache di CloudFlare significa che la richiesta viene inoltrata direttamente al server originale per ottenere la risorsa richiesta, senza utilizzare la copia presente nella cache di CloudFlare. Ciò consente di garantire che la richiesta sia sempre servita con la versione più recente della risorsa, ma può avere un impatto sulle prestazioni poiché la richiesta deve essere elaborata dal server originale.

Cosa significa cf-cache-status: DYNAMIC ?

Il termine DYNAMIC nella risposta cf-cache-status di CloudFlare indica che la richiesta è stata servita da una copia della risorsa presente nella cache di CloudFlare ma questa copia è stata generata dinamicamente. Ciò significa che CloudFlare ha utilizzato una copia della risorsa presente nella propria cache, ma questa copia è stata generata dinamicamente al momento della richiesta, utilizzando un script o un’applicazione. Questo è utilizzato per gestire contenuti dinamici come ad esempio siti web che utilizzano PHP o contenuti personalizzati in base all’utente. In questo caso, CloudFlare utilizza la cache per evitare di elaborare sempre la richiesta tramite lo script o l’applicazione, ma genera una copia dinamicamente solo quando necessario. Ciò consente di migliorare le prestazioni e ridurre la latenza, ma richiede una maggiore elaborazione rispetto alla modalità di caching statica.

Cosa significa cf-cache-status: STALE ?

Il termine STALE nella risposta cf-cache-status di CloudFlare indica che la richiesta è stata servita da una copia della risorsa presente nella cache di CloudFlare, ma questa copia non è più valida poiché il suo periodo di validità è scaduto. In questo caso, CloudFlare utilizza la copia presente nella propria cache, ma contemporaneamente invia una nuova richiesta al server originale per ottenere una copia aggiornata della risorsa. Ciò consente di servire immediatamente la richiesta utilizzando la copia presente nella cache, ma garantisce anche che la cache sia aggiornata con la versione più recente della risorsa.

Ciò è utile quando si vuole evitare di mostrare un errore per una pagina non disponibile, ma allo stesso tempo si vuole avere una copia aggiornata della risorsa per future richieste.

In generale, utilizzando la modalità “STALE” si ottiene un equilibrio tra performance e freschezza dei contenuti, ma dipende dalle esigenze specifiche del proprio sito web o applicazione.

Cosa significa cf-cache-status: UPDATING ?

Il termine UPDATING nella risposta cf-cache-status di CloudFlare indica che la richiesta è stata servita da una copia della risorsa presente nella cache di CloudFlare, ma che una nuova copia della risorsa sta attualmente venendo scaricata dal server originale per aggiornare la cache. In questo caso, CloudFlare utilizzerà la copia presente nella propria cache per servire la richiesta corrente, ma contemporaneamente invierà una nuova richiesta al server originale per ottenere una copia aggiornata della risorsa. Ciò consente di servire immediatamente la richiesta utilizzando la copia presente nella cache, ma garantisce anche che la cache sia aggiornata con la versione più recente della risorsa nel più breve tempo possibile.

Questo stato di UPDATING è transitorio e successivamente la richiesta verrà servita con una delle risposte HIT, EXPIRED, STALE o MISS, a seconda delle impostazioni di cache configurate.

Conoscere questi valori e capire come CloudFlare sta gestendo le richieste al tuo sito può aiutarti a ottimizzare la configurazione del tuo account e migliorare le prestazioni del tuo sito per i visitatori.

Conclusione

CloudFlare è una soluzione economica e funzionale per migliorare le prestazioni del sito web e la sicurezza. La sua funzionalità di caching e di Content Delivery Network (CDN) consente di ridurre la latenza e aumentare la velocità di caricamento delle pagine. Tuttavia, per ottenere i massimi benefici da CloudFlare, è importante assicurarsi che la cache sia configurata correttamente e che sia efficiente.

Un indicatore importante per valutare l’efficienza della cache di CloudFlare è l’HIT Ratio, ovvero il rapporto tra le richieste servite dalla cache (HIT) e quelle che devono essere inoltrate al server originale (MISS). Più alto è l’HIT Ratio, maggiore è l’efficienza della cache. Un HIT Ratio basso indica che molte richieste devono essere inoltrate al server originale e che quindi la cache non è configurata correttamente o non è efficiente.

C’è un aspetto cruciale che nessuno dice, ovvero che sebbene CloudFlare aiuti ad abbassare il TTFB e la latenza per le richieste di tipo HIT, tende ad aumentarle per le richieste di tipo MISS o comunque tutte quelle che necessitano di pescare il contenuto dal server di origine, aggiungendo la latenza inversa che serve per recuperare il contenuto del server di origine e dunque aggiungendo sia la latenza geografica che la durata dell’handshake SSL e il wait time per la generazione della risposta da parte del server di origine.

tls-ssl-handshake

Per ottenere i massimi benefici da CloudFlare, è quindi importante monitorare costantemente l’HIT Ratio e, se necessario, apportare modifiche alla configurazione della cache per migliorare l’efficienza. Inoltre, è importante anche monitorare gli altri indici di performance come la latenza, numero di richieste e stato delle richieste per avere un quadro completo del funzionamento della cache e della propria configurazione.

Non sai come configurare correttamente la cache di CloudFlare per ottenere le massime prestazioni del tuo sito web? Non sei sicuro che la tua attuale configurazione sia ottimizzata per le tue esigenze? Contattaci! I nostri esperti ti aiuteranno a comprendere meglio il funzionamento della cache di CloudFlare e a configurarla in modo da ottenere i massimi benefici per il tuo sito web. Con la nostra consulenza, potrai aumentare la velocità del tuo sito web, migliorare l’esperienza dell’utente e proteggere il tuo sito web da attacchi DDoS.

Hai dei dubbi? Non sai da dove iniziare? Contattaci !

Abbiamo tutte le risposte alle tue domande per aiutarti nella giusta scelta.

Chatta con noi

Chatta direttamente con il nostro supporto prevendita.

0256569681

Contattaci telefonicamente negli orari d’ufficio 9:30 – 19:30

Contattaci online

Apri una richiesta direttamente nell’area dei contatti.

INFORMAZIONI

Managed Server S.r.l. è un player italiano di riferimento nel fornire soluzioni avanzate di sistemistica GNU/Linux orientate all’alta performance. Con un modello di sottoscrizione dai costi contenuti e prevedibili, ci assicuriamo che i nostri clienti abbiano accesso a tecnologie avanzate nel campo dell’hosting, server dedicati e servizi cloud. Oltre a questo, offriamo consulenza sistemistica su sistemi Linux e manutenzione specializzata in DBMS, IT Security, Cloud e molto altro. Ci distinguiamo per l’expertise in hosting di primari CMS Open Source come WordPress, WooCommerce, Drupal, Prestashop, Joomla, OpenCart e Magento, affiancato da un servizio di supporto e consulenza di alto livello adatto per la Pubblica Amministrazione, PMI, ed aziende di qualsiasi dimensione.

Red Hat, Inc. detiene i diritti su Red Hat®, RHEL®, RedHat Linux®, e CentOS®; AlmaLinux™ è un marchio di AlmaLinux OS Foundation; Rocky Linux® è un marchio registrato di Rocky Linux Foundation; SUSE® è un marchio registrato di SUSE LLC; Canonical Ltd. detiene i diritti su Ubuntu®; Software in the Public Interest, Inc. detiene i diritti su Debian®; Linus Torvalds detiene i diritti su Linux®; FreeBSD® è un marchio registrato di The FreeBSD Foundation; NetBSD® è un marchio registrato di The NetBSD Foundation; OpenBSD® è un marchio registrato di Theo de Raadt. Oracle Corporation detiene i diritti su Oracle®, MySQL®, e MyRocks®; Percona® è un marchio registrato di Percona LLC; MariaDB® è un marchio registrato di MariaDB Corporation Ab; REDIS® è un marchio registrato di Redis Labs Ltd. F5 Networks, Inc. detiene i diritti su NGINX® e NGINX Plus®; Varnish® è un marchio registrato di Varnish Software AB. Adobe Inc. detiene i diritti su Magento®; PrestaShop® è un marchio registrato di PrestaShop SA; OpenCart® è un marchio registrato di OpenCart Limited. Automattic Inc. detiene i diritti su WordPress®, WooCommerce®, e JetPack®; Open Source Matters, Inc. detiene i diritti su Joomla®; Dries Buytaert detiene i diritti su Drupal®. Amazon Web Services, Inc. detiene i diritti su AWS®; Google LLC detiene i diritti su Google Cloud™ e Chrome™; Microsoft Corporation detiene i diritti su Microsoft®, Azure®, e Internet Explorer®; Mozilla Foundation detiene i diritti su Firefox®. Apache® è un marchio registrato di The Apache Software Foundation; PHP® è un marchio registrato del PHP Group. CloudFlare® è un marchio registrato di Cloudflare, Inc.; NETSCOUT® è un marchio registrato di NETSCOUT Systems Inc.; ElasticSearch®, LogStash®, e Kibana® sono marchi registrati di Elastic N.V. Hetzner Online GmbH detiene i diritti su Hetzner®; OVHcloud è un marchio registrato di OVH Groupe SAS; cPanel®, L.L.C. detiene i diritti su cPanel®; Plesk® è un marchio registrato di Plesk International GmbH; Facebook, Inc. detiene i diritti su Facebook®. Questo sito non è affiliato, sponsorizzato o altrimenti associato a nessuna delle entità sopra menzionate e non rappresenta nessuna di queste entità in alcun modo. Tutti i diritti sui marchi e sui nomi di prodotto menzionati sono di proprietà dei rispettivi detentori di copyright. Ogni altro marchio citato appartiene ai propri registranti. MANAGED SERVER® è un marchio registrato a livello europeo da MANAGED SERVER SRL, Via Enzo Ferrari, 9, 62012 Civitanova Marche (MC), Italia.

SOLO UN ATTIMO !

Vorresti vedere come gira il tuo WooCommerce sui nostri sistemi senza dover migrare nulla ? 

Inserisci l'indirizzo del tuo sito WooCommerce e otterrai una dimostrazione navigabile, senza dover fare assolutamente nulla e completamente gratis.

No grazie, i miei clienti preferiscono il sito lento.
Torna in alto