Una risposta memorizzabile nella cache è una risposta HTTP che può essere archiviata e recuperata rapidamente da Cloud CDN, consentendo tempi di caricamento più rapidi. Non tutte le risposte HTTP sono memorizzabili nella cache.
Modalità cache
Con le modalità cache puoi controllare i fattori che determinano se Cloud CDN memorizza o meno i tuoi contenuti nella cache.
Cloud CDN offre tre modalità cache che determinano come le risposte vengono memorizzate nella cache, se Cloud CDN rispetta o meno le istruzioni di memorizzazione nella cache inviate dall'origine e come vengono applicate le durate (TTL) della cache.
Le modalità cache disponibili sono riportate nella tabella seguente:
| Modalità cache | Comportamento |
|---|---|
CACHE_ALL_STATIC |
Memorizza automaticamente nella cache le risposte con esito positivo con contenuti statici che altrimenti non sono memorizzabili nella cache.
Anche le risposte provenienti dall'origine che impostano istruzioni di memorizzazione nella cache valide vengono memorizzate nella cache. Questo comportamento è predefinito per i backend con Cloud CDN abilitato creati utilizzando Google Cloud CLI o l'API REST. |
USE_ORIGIN_HEADERS |
Richiede risposte con esito positivo provenienti dall'origine per impostare istruzioni di memorizzazione nella cache e intestazioni di memorizzazione nella cache valide. Le risposte con esito positivo senza queste istruzioni vengono inoltrate dall'origine. |
FORCE_CACHE_ALL |
Memorizza incondizionatamente le risposte con esito positivo nella cache, ignorando qualsiasi istruzione di memorizzazione nella cache impostata dall'origine. Questa modalità non è adatta se il backend gestisce contenuti privati per ciascun utente (utente identificabile), come contenuti HTML dinamici o risposte dell'API. |
Le risposte di errore potrebbero essere memorizzate nella cache anche in assenza di istruzioni di memorizzazione nella cache valide.
Prima di impostare la modalità cache su FORCE_CACHE_ALL, tieni presenti i seguenti comportamenti:
Per URL firmati o cookie firmati,
FORCE_CACHE_ALLsostituisce la durata massima specificata tramite l'impostazione Durata massima delle voci di cache nella console Google Cloud o l'opzionegcloud --signed-url-cache-max-age.FORCE_CACHE_ALLmodifica la durata (TTL) di qualsiasi contenuto precedentemente memorizzato nella cache. Questa modifica può far sì che alcune voci precedentemente considerate aggiornate (perché avevano TTL più lunghi specificati dalle intestazioni dell'origine) vengano considerate scadute e che alcune voci precedentemente considerate scadute vengano considerate aggiornate.FORCE_CACHE_ALLignora le istruzioni di memorizzazione nella cache (Cache-ControledExpires), ma non ignora altre intestazioni della risposta dell'origine. In particolare, un'intestazioneVarypotrebbe disattivare la memorizzazione nella cache anche se la modalità cache èFORCE_CACHE_ALL. Per saperne di più, consulta Intestazioni Vary.
Per istruzioni per la configurazione, consulta Impostazione della modalità cache.
Contenuti statici
I contenuti statici sono contenuti sempre uguali, anche se vengono visualizzati da utenti diversi. Il CSS che utilizzi per definire lo stile del tuo sito, il codice JavaScript per fornire interattività, video e contenuti con immagini in genere non cambiano per ogni utente per un determinato URL (chiave cache) e quindi traggono vantaggio dalla memorizzazione nella cache nell'intera rete edge globale di Cloud CDN.
Quando imposti la modalità cache su CACHE_ALL_STATIC e una risposta non ha istruzioni di memorizzazione nella cache esplicite nelle intestazioni Cache-Control o Expires, Cloud CDN memorizza nella cache automaticamente la risposta per quanto segue:
- Asset web, inclusi CSS (
text/css), JavaScript (application/javascript) e tutti i caratteri web, incluso WOFF2 (font/woff2) - Immagini, inclusi i formati JPEG (
image/jpg) e PNG (image/png) - Video, inclusi i formati H.264, H.265 e MP4 (
video/mp4) - File audio, inclusi i formati MP3 (
audio/mpeg) e MP4 (audio/mp4) - Documenti formattati, inclusi i file PDF (
application/pdf)
La tabella seguente offre un riepilogo.
| Categoria | Tipi MIME |
|---|---|
| Asset web | text/css text/ecmascript text/javascript application/javascript |
| Caratteri | Qualsiasi Content-Type corrispondente a font/* |
| Immagini | Qualsiasi Content-Type corrispondente a image/* |
| Video | Qualsiasi Content-Type corrispondente a video/* |
| Audio | Qualsiasi Content-Type corrispondente a audio/* |
| Tipi di documenti formattati | application/pdf e application/postscript |
Cloud CDN esamina l'intestazione della risposta HTTP Content-Type, che riflette il tipo MIME dei contenuti forniti.
Tieni presente quanto segue:
Il software server web dell'origine deve impostare
Content-Typeper ogni risposta. Molti server web, tra cui NGINX, Varnish e Apache, impostano automaticamente l'intestazioneContent-Type.Cloud Storage imposta automaticamente l'intestazione
Content-Typequando utilizzi la console Google Cloud o Google Cloud CLI per caricare contenuti.Cloud Storage fornisce sempre un'intestazione
Cache-Controla Cloud CDN. Se non viene scelto esplicitamente alcun valore, invia un valore predefinito. Di conseguenza, tutte le risposte con esito positivo di Cloud Storage vengono memorizzate nella cache in base ai valori predefiniti di Cloud Storage, a meno che tu non modifichi esplicitamente i metadati di controllo cache per gli oggetti in Cloud Storage o utilizzi la modalitàFORCE_CACHE_ALLper ignorare i valori inviati da Cloud Storage.Se vuoi memorizzare nella cache i tipi di contenuti
text/htmleapplication/json, devi impostare intestazioniCache-Controlesplicite nella risposta, facendo attenzione a evitare di memorizzare accidentalmente nella cache i dati di un utente e fornirli a tutti gli utenti.
Se una risposta è memorizzabile nella cache in base al tipo MIME, ma ha un'intestazione della risposta Cache-Control con valore private o no-store oppure un'intestazione Set-Cookie, non viene memorizzata nella cache. Per saperne di più, consulta le regole di memorizzazione nella cache.
Altri tipi di contenuti, come HTML (text/html) e JSON (application/json), non vengono memorizzati nella cache per impostazione predefinita per le risposte con esito positivo. Questi tipi di risposte sono in genere dinamici (per utente). Alcuni esempi includono carrelli degli acquisti, pagine di prodotto con personalizzazione per l'utente e risposte API autenticate. Tuttavia, se abilitata, la memorizzazione nella cache negativa può comunque causarne la memorizzazione nella cache per determinati codici di stato.
Cloud CDN non utilizza le estensioni dei file nel percorso URL per determinare se una risposta può essere memorizzata nella cache, perché molte risposte valide memorizzabili nella cache non vengono riflesse negli URL.
Contenuti memorizzabili nella cache
Cloud CDN memorizza nella cache le risposte che soddisfano tutti i requisiti di questa sezione. Alcuni di questi requisiti sono specificati dalla RFC 7234, mentre altri sono specifici di Cloud CDN.
Cloud CDN potrebbe modificare periodicamente l'insieme esatto di condizioni in base alle quali memorizza i contenuti nella cache. Se vuoi impedire esplicitamente a Cloud CDN di memorizzare nella cache i tuoi contenuti, segui le linee guida riportate nella RFC 7234 per determinare come specificare una risposta con garanzia di non memorizzazione nella cache. Consulta anche la sezione Contenuti non memorizzabili nella cache in base alle intestazioni dell'origine.
Cloud CDN memorizza le risposte nella cache se sono soddisfatte tutte le seguenti condizioni.
| Attributo | Requisito |
|---|---|
| Fornito da | Servizio di backend, bucket di backend o un backend esterno con Cloud CDN abilitato |
| In risposta a | Richiesta GET |
| Codice di stato |
|
| Aggiornamento | La risposta ha un'intestazione Per le risposte memorizzabili nella cache senza una durata (ad esempio, con Con la modalità cache Con la modalità cache Se è abilitata la memorizzazione nella cache negativa e il codice di stato corrisponde a un codice per cui la memorizzazione nella cache negativa specifica un TTL, la risposta è idonea alla memorizzazione nella cache, anche senza istruzioni sullo stato di aggiornamento esplicite. |
| Contenuti | Per le origini HTTP/1, la risposta deve contenere un'intestazione Per le origini che utilizzano versioni più avanzate del protocollo HTTP (HTTP/2 e successive), non è necessario che la risposta abbia queste intestazioni. |
| Dimensioni | Valore minore o uguale alle dimensioni massime.
Per le risposte con dimensioni comprese tra 10 MiB e 100 GiB, consulta i vincoli di memorizzazione nella cache aggiuntivi descritti in Richieste di intervalli di byte. |
Per i bucket di backend Cloud Storage, segui questi suggerimenti aggiuntivi:
Rendi il bucket leggibile pubblicamente. Questo è l'approccio che consigliamo per i contenuti pubblici. Con questa impostazione, chiunque su internet può visualizzare ed elencare i tuoi oggetti e i relativi metadati, esclusi gli ACL. La prassi consigliata consiste nel dedicare bucket specifici agli oggetti pubblici.
Utilizza le cartelle gestite per rendere leggibile pubblicamente una parte del bucket.
Rendi i singoli oggetti leggibili pubblicamente. Sconsigliamo questo approccio perché utilizza un sistema di autorizzazioni legacy specifico per Cloud Storage.
Non archiviare l'oggetto in un bucket con l'opzione Pagamenti a carico del richiedente abilitata o che si trova all'interno di un perimetro di servizio Virtual Private Cloud.
Non criptare l'oggetto utilizzando chiavi di crittografia gestite dal cliente o chiavi di crittografia fornite dal cliente.
Per impostazione predefinita, quando un oggetto è pubblico e non specifica metadati Cache-Control, Cloud Storage assegna un'intestazione Cache-Control: public, max-age=3600 all'oggetto. Puoi impostare valori diversi utilizzando i metadati Cache-Control.
Per un esempio che mostra come configurare un bilanciatore del carico delle applicazioni esterno con un bucket di backend, consulta Configurazione di Cloud CDN con un bucket di backend.
Dimensione massima
Cloud CDN applica una dimensione massima per ogni risposta. Qualsiasi risposta con un corpo più grande della dimensione massima non viene memorizzata nella cache, ma viene comunque inviata al client.
La dimensione massima varia a seconda che il server di origine supporti le richieste di intervalli di byte.
| Il server di origine supporta le richieste di intervalli di byte | Il server di origine non supporta le richieste di intervalli di byte |
|---|---|
| 100 GiB (107.374.182.400 byte) | 10 MiB (10.485.760 byte) |
Quasi tutti i server web moderni (inclusi NGINX, Apache e Varnish) supportano le richieste di intervalli di byte.
Contenuti non memorizzabili nella cache in base alle intestazioni dell'origine
Esistono controlli che bloccano la memorizzazione nella cache delle risposte. Cloud CDN potrebbe modificare periodicamente l'insieme esatto di condizioni in base alle quali memorizza i contenuti nella cache; di conseguenza, se vuoi impedire esplicitamente a Cloud CDN di memorizzare i tuoi contenuti nella cache, segui le linee guida nello standard (RFC 7234) per determinare come specificare una risposta con garanzia di non memorizzazione nella cache.
Cloud CDN non memorizza nella cache una risposta se non soddisfa i requisiti per i contenuti memorizzabili nella cache o se si verifica una delle seguenti condizioni.
| Attributo | Requisito |
|---|---|
| Fornito da | Servizio di backend o backend esterno senza Cloud CDN abilitato |
| Cookie | Ha un'intestazione Set-Cookie |
Intestazione Vary |
Ha un valore diverso da Accept,
Accept-Encoding,
Access-Control-Request-Headers,
Access-Control-Request-Method, Origin,
Sec-Fetch-Dest, Sec-Fetch-Mode,
Sec-Fetch-Site, X-Goog-Allowed-Resources,
X-Origin o una delle intestazioni configurate per far parte delle
impostazioni della chiave cache.
|
| Istruzione della risposta | La risposta ha un'intestazione Cache-Control con l'istruzione no-store o private (a meno che non venga utilizzata la modalità cache FORCE_CACHE_ALL, nel qual caso l'intestazione Cache-Control viene ignorata). |
| Istruzione della richiesta | La richiesta ha un'istruzione Cache-Control: no-store |
| Autorizzazione della richiesta | La richiesta ha un'intestazione Authorization, a meno che non venga sostituita da Cache-Control della risposta. |
| Dimensioni | Maggiori della dimensione massima |
Se è presente Cache-Control: no-store o private, ma i contenuti sono ancora memorizzati nella cache, il motivo è uno dei seguenti:
- È configurata la firma dell'URL.
- La modalità cache di Cloud CDN è impostata per forzare la memorizzazione nella cache di tutte le risposte.
Impedisci la memorizzazione nella cache
Per impedire la memorizzazione di informazioni private nelle cache Cloud CDN, segui questi passaggi:
- Assicurati che la modalità cache di Cloud CDN non sia impostata su
FORCE_CACHE_ALL, che memorizza nella cache in modo incondizionato tutte le risposte con esito positivo. - Includi un'intestazione
Cache-Control: privatenelle risposte che non devono essere memorizzate nelle cache Cloud CDN oppure un'intestazioneCache-Control: no-storenelle risposte che non devono essere memorizzate in alcuna cache, neanche quella di un browser web. - Non firmare gli URL che forniscono l'accesso a informazioni private. Quando l'accesso ai contenuti avviene utilizzando un URL firmato, i contenuti sono potenzialmente idonei alla memorizzazione nella cache indipendentemente dalle istruzioni
Cache-Controlnella risposta. - Per le richieste dell'origine (riempimento della cache) che includono l'intestazione della richiesta
Authorization, Cloud CDN memorizza nella cache solo le risposte che includono le istruzioni di controllo cachepublic,must-revalidateos-maxagequando la modalità cache è impostata suUSE_ORIGIN_HEADERSoCACHE_ALL_STATIC. In questo modo si evita la memorizzazione accidentale nella cache di contenuti per utente e di contenuti che richiedono l'autenticazione. La modalità cacheFORCE_CACHE_ALLnon presenta questa limitazione.
Intestazioni delle risposte personalizzate
Con le intestazioni delle risposte personalizzate puoi specificare le intestazioni che il bilanciatore del carico delle applicazioni classico aggiunge alle risposte inviate tramite proxy. Le intestazioni delle risposte personalizzate ti consentono di riflettere lo stato della cache sui tuoi client, sui dati geografici dei client e sulle tue intestazioni delle risposte statiche.
Per istruzioni, consulta Configura intestazioni delle risposte personalizzate.
Chiavi cache
Ogni voce della cache in una cache Cloud CDN è identificata da una chiave cache. Quando una richiesta entra nella cache, questa converte l'URI della richiesta in una chiave cache e la confronta con le chiavi delle voci memorizzate nella cache. Se trova una corrispondenza, la cache restituisce l'oggetto associato a quella chiave.
Per i servizi di backend, Cloud CDN utilizza per impostazione predefinita l'URI della richiesta completo come chiave cache.
Ad esempio, https://example.com/images/cat.jpg è l'URI completo di una richiesta specifica per l'oggetto cat.jpg. Questa stringa viene utilizzata come chiave cache predefinita. Viene individuata una corrispondenza solo per le richieste con questa stringa esatta. Le richieste per http://example.com/images/cat.jpg o https://example.com/images/cat.jpg?user=user1 non corrispondono.
Per i bucket di backend, l'impostazione predefinita prevede che la chiave cache sia costituita dall'URI senza protocollo o host. Per impostazione predefinita, solo i parametri di query noti a Cloud Storage sono inclusi nella chiave cache (ad esempio, "generation").
Pertanto, per un determinato bucket di backend, i seguenti URI vengono risolti nello stesso oggetto memorizzato nella cache:
http://example.com/images/cat.jpghttps://example.com/images/cat.jpghttps://example.com/images/cat.jpg?user=user1http://example.com/images/cat.jpg?user=user1https://example.com/images/cat.jpg?user=user2https://media.example.com/images/cat.jpghttps://www.example.com/images/cat.jpg
Puoi cambiare le parti dell'URI utilizzate nella chiave cache. Sebbene il nome file e il percorso debbano sempre far parte della chiave, quando personalizzi la chiave cache puoi includere o omettere qualsiasi combinazione di protocollo, host o stringa di query. Utilizzo delle chiavi cache descrive come personalizzare le chiavi cache.
| Parte dell'URI | Personalizzazione | URL di esempio con la stessa chiave cache |
|---|---|---|
| Protocollo | Ometti il protocollo dalla chiave cache. |
|
| Host | Ometti l'host dalla chiave cache. |
|
| Stringa di query | Ometti la stringa di query dalla chiave cache. Ometti o includi selettivamente parti della stringa di query. |
|
Oltre a omettere o includere l'intera stringa di query, puoi utilizzare parti della stringa di query tramite elenchi di inclusione ed esclusione.
Elenco di inclusione delle stringhe di query
Puoi controllare in modo selettivo quali parametri della stringa di query vengono incorporati da Cloud CDN nelle chiavi cache. Ad esempio, se crei un elenco di inclusione di user, https://example.com/images/cat.jpg?user=user1&color=blue crea una chiave cache https://example.com/images/cat.jpg?user=user1 che corrisponde anche a https://example.com/images/cat.jpg?user=user1&color=red.
Per utilizzare questa opzione, devi includere la stringa di query, specificare un elenco di inclusione non vuoto e non specificare un elenco di esclusione.
Elenco di inclusione della stringhe di query per le chiavi cache di Cloud Storage
L'inclusione dei parametri di query URL nelle chiavi cache per i bucket Cloud Storage consente di supportare il busting della cache. Il busting della cache consente a un utente di recuperare una nuova versione del file caricato, anche se la versione precedente è ancora validamente memorizzata nella cache in base all'impostazione del TTL.
Puoi utilizzare un elenco di inclusione con i parametri della stringa di query nella chiave cache utilizzata per fornire le risposte da un bucket di backend. Sebbene Cloud Storage non pubblichi contenuti o percorsi diversi in base ai parametri di query, puoi scegliere di includere parametri che ti consentono di eseguire il busting della cache dei contenuti statici archiviati nei bucket Cloud Storage.
Ad esempio, puoi aggiungere un parametro di query ?version=VERSION o ?hash=HASH basato sui contenuti sottostanti. Ciò limita la necessità di annullare in modo proattivo la validità dei contenuti ed è in linea con i moderni workflow di sviluppo web, in cui i framework web e gli URL utilizzano un hash dei contenuti per evitare di fornire oggetti scaduti nei vari deployment.
Poiché l'inclusione dei parametri di query nella chiave cache viene attivata solo esplicitamente, Cloud CDN non supporta l'esclusione dei parametri di query da una chiave cache per un bucket di backend.
Elenco di esclusione della stringa di query
Puoi controllare in modo selettivo quali parametri della stringa di query vengono ignorati da Cloud CDN utilizzando un elenco di esclusione. Ad esempio, se crei un elenco di esclusione per user, nella chiave cache vengono utilizzati tutti i parametri della stringa di query tranne user.
Con l'elenco di esclusione configurato e https://example.com/images/cat.jpg?user=user1&color=blue come input, Cloud CDN crea una chiave cache https://example.com/images/cat.jpg?color=blue che corrisponde anche a https://example.com/images/cat.jpg?user=user2&color=blue, ma non a https://example.com/images/cat.jpg?user=user1&color=red.
Per utilizzare questa opzione, devi includere la stringa di query, specificare un elenco di esclusione non vuoto e non specificare un elenco di inclusione.
Ordine dei parametri di query
La chiave cache generata non dipende dall'ordine dei parametri di query.
Ad esempio, i seguenti parametri di query generano la stessa chiave cache:
info=123&variant=13e&geography=USgeography=US&variant=13e&info=123
Impostazioni delle intestazioni HTTP e dei cookie HTTP
Puoi migliorare le percentuali di successo della cache e l'offload dell'origine con le seguenti impostazioni di configurazione della chiave cache:
- Per servizi e bucket di backend: utilizza le intestazioni HTTP come parte delle chiavi cache includendo le intestazioni denominate nella configurazione della chiave cache.
- Solo per servizi di backend: utilizza i cookie HTTP denominati come chiavi cache, ad esempio per i test A/B (multivariati), le release canary e scenari simili.
Le richieste che includono intestazioni HTTP o cookie HTTP aggiuntivi nella richiesta vengono memorizzate nella cache alla terza richiesta in una posizione della cache per la chiave cache in questione. In questo modo si riduce l'impatto sulle percentuali di eliminazioni dalla cache di valori di intestazioni o cookie con cardinalità elevata. In circostanze e condizioni di traffico utente normali, questo non dovrebbe risultare evidente e contribuisce a garantire che i contenuti popolari rimangano memorizzati nella cache.
Includi intestazioni della richiesta
Per memorizzare nella cache altre varianti di una risposta, puoi includere intestazioni della richiesta aggiuntive nella chiave cache.
Alcune intestazioni non sono consentite nelle chiavi cache perché in genere hanno una cardinalità molto elevata. Nella maggior parte dei casi, i valori di queste intestazioni sono univoci per utente (Cookie, Authorization) o hanno migliaia di valori probabili (Referer, User-Agent, Accept). Ad esempio, l'intestazione User-Agent può avere oltre 5000 valori univoci data la grande varietà di browser, dispositivi utente e sistemi operativi. Questi tipi di intestazioni avrebbero un impatto negativo grave sulla percentuale di successi della cache.
Sono accettati solo nomi di campi dell'intestazione HTTP validi in base alla RFC 7230. I nomi dei campi dell'intestazione non fanno distinzione tra maiuscole e minuscole e i duplicati vengono rifiutati.
Facoltativamente, puoi configurare il server di origine in modo che includa le intestazioni della richiesta della chiave cache configurate nella risposta Vary. Non è obbligatorio per Cloud CDN, ma può essere utile per le cache downstream. Per saperne di più, consulta Intestazioni Vary.
Cloud CDN non consente l'inclusione delle seguenti intestazioni nell'elenco delle intestazioni:
AcceptAccept-EncodingAuthority, perché questo valore è controllato dalla configurazione (cdnPolicy.includeHost)Authorization, in genere per singolo utente come nei token OAuthBearerCDN-LoopConnectionContent-MD5Content-TypeCookieDateForwarded, spesso per singolo client o proxyFromHost, perché questo valore è controllato dalla configurazione (cdnPolicy.includeHost)If-Match,If-Modified-SinceoIf-None-MatchOriginProxy-AuthorizationRangeReferer(oReferrer)User-AgentWant-DigestX-CSRFTokeneX-CSRF-Tokencome utilizzati da Django e Ruby on RailsX-Forwarded-For, spesso per singolo client o proxyX-User-IP- Qualsiasi intestazione che inizia con quanto segue:
Access-Control-, ad esempioAccess-Control-Request-HeaderseAccess-Control-Request-MethodSec-Fetch-Sec-GFE-Sec-Google-X-Amz-X-GFE-X-Goog-X-Google-
Utilizza variabili personalizzate con le intestazioni della richiesta
Le chiavi cache sono utili quando devi pubblicare contenuti in modo diverso in base al dispositivo e alla località di ogni utente. Ad esempio, puoi consentire a un sito web adattabile di mostrare le immagini appropriate agli utenti che visualizzano i contenuti in base al tipo di dispositivo o impostare una lingua predefinita utile in base alla loro località. Puoi definire le chiavi cache utilizzando intestazioni della richiesta personalizzate e variabili personalizzate.
Per utilizzare variabili personalizzate con le intestazioni della richiesta:
- Definisci un'intestazione della richiesta personalizzata per il tuo servizio di backend. Includi una o più variabili per il valore dell'intestazione della richiesta personalizzata.
- Aggiorna la chiave cache per utilizzare l'intestazione della richiesta personalizzata.
Per Cloud CDN, puoi utilizzare solo le seguenti variabili quando definisci intestazioni che sono sia intestazioni della richiesta personalizzate sia intestazioni della chiave cache:
device_request_typeuser_agent_familyclient_regionclient_region_subdivision
Cloud CDN limita le variabili per contribuire a mantenere le prestazioni della cache. Ciò è analogo ai limiti delle intestazioni che possono essere utilizzate come chiavi cache.
Ad esempio, se potessi specificare X-Lat-Long:{client_city_lat_long} come intestazione della richiesta personalizzata e poi aggiungere X-Lat-Long al tuo insieme di intestazioni della chiave cache, Cloud CDN tenterebbe di memorizzare nella cache una copia della risposta per ogni valore di client_city_lat_long. Ciò comporterebbe un uso eccessivo della cache, il flush non necessario dei contenuti e una minore opportunità di restituire successi della cache.
Per questi motivi, le variabili con cardinalità elevata non sono incluse nell'elenco delle variabili utilizzate per definire le intestazioni della richiesta personalizzate e, successivamente, le chiavi cache.
Stesse intestazioni con valori diversi
Supponiamo che l'utente invii più intestazioni con lo stesso nome e valori diversi, ad esempio:
My-Header: Value1
My-Header: Value2
In questo caso, Cloud CDN modifica la richiesta presupponendo che l'intestazione debba seguire la convenzione standard che consente ad alcune intestazioni di avere più valori. Cloud CDN le comprime in un elenco separato da virgole da inviare al backend, quindi è come se il client avesse inviato quanto segue:
My-Header: Value1, Value2
Includi cookie denominati
Un cookie HTTP è un accoppiamento name=value e una richiesta può includere più cookie HTTP, separati da un punto e virgola sulla stessa riga oppure come intestazioni della richiesta Cookie discrete con un cookie per intestazione.
Puoi fornire un elenco di massimo cinque nomi di cookie.
Gli user agent (come i browser web) spesso limitano a 4 KB il numero di cookie memorizzati per dominio. Assicurati di non inviare troppi cookie (o cookie troppo grandi), poiché lo user agent potrebbe non inviarli tutti in una richiesta. Ciò può influire sulla ricezione di una risposta specifica memorizzata nella cache da parte di un utente.
Se fornisci i contenuti statici da un nome host diverso rispetto a quello da cui emetti i cookie, assicurati che l'attributo Domain del cookie (e l'attributo Path) consenta l'invio del cookie insieme alle richieste di contenuti statici.
Se una richiesta include più istanze dello stesso nome cookie, viene rispettata solo la prima.
Istruzioni di controllo cache
Le istruzioni di controllo cache HTTP influiscono sul comportamento di Cloud CDN, come descritto nella tabella seguente.
N/A indica che un'istruzione non è applicabile a una richiesta o a una risposta.
| Istruzione | Richiesta | Risposta |
|---|---|---|
no-store |
Se presente in una richiesta, Cloud CDN la rispetta e non memorizza la risposta nella cache. |
Una risposta con
È possibile eseguire l'override di questa impostazione per singolo backend con la modalità cache |
no-cache |
L'istruzione della richiesta no-cache viene ignorata per impedire ai client di essere in grado di avviare o forzare la riconvalida sull'origine.
|
Una risposta con
È possibile eseguire l'override di questa impostazione per singolo backend con la modalità cache |
public |
N/A |
Quest'istruzione non è necessaria per la memorizzazione nella cache, ma è una best practice includerla per i contenuti che devono essere memorizzati nella cache dai proxy. |
private |
N/A |
Una risposta con l'istruzione
È possibile eseguire l'override di questa impostazione per singolo backend con la modalità cache |
max-age=SECONDS
|
L'istruzione max-age della richiesta viene ignorata. Una risposta memorizzata nella cache viene restituita come se questa intestazione non fosse inclusa nella richiesta.
|
Una risposta con l'istruzione max-age viene memorizzata nella cache fino al valore di SECONDS definito.
|
s-maxage=SECONDS
|
N/A |
Una risposta con l'istruzione
Se sono presenti sia Le risposte con questa istruzione non vengono fornite se scadute.
|
min-fresh=SECONDS
|
L'istruzione min-fresh della richiesta viene ignorata. Una risposta memorizzata nella cache viene restituita come se questa intestazione non fosse inclusa nella richiesta.
|
N/A |
max-stale=SECONDS
|
L'istruzione Cloud CDN rispetta questa istruzione e restituisce una risposta memorizzata nella cache scaduta solo se il tempo di mancato aggiornamento della risposta è inferiore all'istruzione |
N/A |
stale-while-revalidate=SECONDS
|
N/A |
Una risposta con
Questo comportamento può essere attivato per tutte le risposte impostando |
stale-if-error=SECONDS
|
L'istruzione stale-if-error della richiesta viene ignorata. Una risposta memorizzata nella cache viene restituita come se questa intestazione non fosse inclusa nella richiesta.
|
Questa intestazione della risposta non ha alcun effetto. |
must-revalidate |
N/A |
Una risposta con Le risposte con questa istruzione non vengono fornite se scadute. |
proxy-revalidate |