Caching dei contenuti basati su cookie - Amazon CloudFront

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Caching dei contenuti basati su cookie

Per impostazione predefinita, CloudFront non considera i cookie durante l’elaborazione di richieste e risposte o quando memorizza nella cache gli oggetti nelle posizioni edge. Se CloudFront riceve due richieste identiche ad eccezione di ciò che è contenuto nell’intestazione Cookie, per impostazione predefinita CloudFront considera le richieste come identiche e restituisce lo stesso oggetto per entrambe.

Puoi configurare CloudFront per inoltrare all’origine alcuni o tutti i cookie nelle richieste dei visualizzatori e per memorizzare nella cache versioni separate degli oggetti in base ai valori dei cookie inoltrati. Quando si esegue questa operazione, CloudFront utilizza alcuni o tutti i cookie presenti nelle richieste del visualizzatore, a prescindere da quelli configurati per l’inoltro, per identificare in modo univoco un oggetto nella cache.

Ad esempio, supponiamo che le richieste per locations.html contengano un cookie country con un valore di uk o fr. Quando si configura CloudFront per memorizzare nella cache gli oggetti in base al valore del cookie country, CloudFront inoltra le richieste locations.html all’origine e include il cookie country e il suo valore. Il server di origine restituisce locations.html e CloudFront memorizza nella cache l’oggetto una volta per le richieste in cui il valore del cookie country è uk e una volta per le richieste in cui il valore è fr.

Importante

Amazon S3 e alcuni server HTTP non elaborano i cookie. Non configurare CloudFront per l’inoltro di cookie a un’origine che non elabora i cookie o che non varia la risposta in base ai cookie. Ciò può causare l’inoltro da parte di CloudFront di più richieste all’origine per lo stesso oggetto, fattore che rallenta le prestazioni e aumenta il carico sull’origine. Se, considerando l’esempio precedente, l’origine non elabora il cookie country o restituisce sempre la stessa versione di locations.html a CloudFront indipendentemente dal valore del cookie country, non configurare CloudFront per l’inoltro di tale cookie.

Al contrario, se l’origine personalizzata dipende da un particolare cookie o invia risposte diverse in base a un cookie, assicurati di configurare CloudFront per inoltrare tale cookie all’origine. In caso contrario, CloudFront rimuove il cookie prima di inoltrare la richiesta all’origine.

Per configurare l’inoltro dei cookie, aggiorna il comportamento della cache della distribuzione. Per ulteriori informazioni sui comportamenti della cache, consulta Cache Behavior Settings (Impostazioni del comportamento della cache), in particolare le sezioni Forward Cookies (Inoltra cookie) e Cookie elenco consentiti.

È possibile configurare ogni comportamento della cache per eseguire una delle operazioni seguenti:

  • Inoltro di tutti i cookie all’origine: CloudFront include tutti i cookie inviati dal visualizzatore quando inoltra le richieste all’origine. Quando l’origine restituisce una risposta, CloudFront la memorizza nella cache utilizzando i nomi e i valori dei cookie nella richiesta del visualizzatore. Se la risposta di origine include intestazioni Set-Cookie, CloudFront le restituisce al visualizzatore con l’oggetto richiesto. CloudFront memorizza anche nella cache le intestazioni Set-Cookie con l’oggetto restituito dall’origine e invia tali intestazioni Set-Cookie ai visualizzatori su tutti gli accessi della cache.

  • Inoltra un set di cookie specificato dall’utente – CloudFront rimuove tutti i cookie inviati dal visualizzatore che non sono presenti nell’elenco di domini prima di inoltrare una richiesta all’origine. CloudFront memorizza nella cache la risposta utilizzando i nomi dei cookie nell’elenco e i valori nella richiesta del visualizzatore. Se la risposta di origine include intestazioni Set-Cookie, CloudFront le restituisce al visualizzatore con l’oggetto richiesto. CloudFront memorizza anche nella cache le intestazioni Set-Cookie con l’oggetto restituito dall’origine e invia tali intestazioni Set-Cookie ai visualizzatori su tutti gli accessi della cache.

    Per informazioni su come specificare i caratteri jolly nei nomi dei cookie, consulta Cookie elenco consentiti.

    Per conoscere la quota corrente relativa al numero di nomi di cookie che puoi inoltrare per ogni comportamento cache o per richiedere una quota superiore, consulta Quote sulle stringhe di query (impostazioni della cache legacy).

  • Nessun inoltro di cookie all’origine: CloudFront non memorizza nella cache gli oggetti in base ai valori dei cookie inviati dal visualizzatore. Inoltre, CloudFront rimuove i cookie prima di inoltrare le richieste all’origine e rimuove le intestazioni Set-Cookie dalle risposte prima di restituire le risposte i visualizzatori. Poiché questo non è un modo ottimale per utilizzare le risorse di origine, quando si seleziona questo comportamento della cache, è necessario assicurarsi che l’origine non includa i cookie nelle risposte di origine per impostazione predefinita.

Note importanti su come specificare i cookie che desideri inoltrare:

Log di accesso

Se configuri CloudFront per registrare le richieste e i cookie, CloudFront registra tutti i cookie e i relativi attributi, anche se configuri CloudFront in modo che non inoltri i cookie all’origine oppure se lo configuri in modo che inoltri solo cookie specifici. Per ulteriori informazioni sulla registrazione di CloudFront, consulta Registri di accesso (registri standard).

Distinzione tra lettere maiuscole e minuscole

I nomi e i valori dei cookie fanno entrambi distinzione tra maiuscole e minuscole. Ad esempio, se CloudFront è configurato per inoltrare tutti i cookie e due richieste del visualizzatore per lo stesso oggetto hanno cookie identici ad eccezione delle maiuscole e delle minuscole, CloudFront memorizza l’oggetto nella cache due volte.

CloudFront ordina i cookie

Se CloudFront è configurato per inoltrare i cookie (tutti o un sottoinsieme), CloudFront ordina i cookie nell’ordine naturale in base al nome del cookie prima di inoltrare la richiesta all’origine.

Nota

I nomi dei cookie che iniziano con il carattere $ non sono supportati. CloudFront rimuove il cookie prima di inoltrare la richiesta all’origine. Puoi rimuovere il carattere $ o specificare un carattere diverso all’inizio del nome del cookie.

If-Modified-Since e If-None-Match

Le richieste condizionali If-Modified-Since e If-None-Match non sono supportate quando CloudFront è configurato per inoltrare i cookie (tutti o un sottoinsieme).

Il formato standard della coppia nome-valore obbligatorio

CloudFront inoltra un’intestazione cookie solo se il valore è conforme al formato standard di coppia nome-valore, ad esempio: "Cookie: cookie1=value1; cookie2=value2"

Disabilitazione della memorizzazione nella cache delle intestazioni Set-Cookie

Se CloudFront è configurato per inoltrare i cookie all’origine (tutti o cookie specifici), memorizza anche nella cache le intestazioni Set-Cookie ricevute nella risposta di origine. CloudFront include queste intestazioni Set-Cookie nella sua risposta al visualizzatore originale e le include anche nelle risposte successive che vengono servite dalla cache CloudFront.

Se desideri ricevere i cookie all’origine ma non desideri che CloudFront memorizzi nella cache le intestazioni Set-Cookie nelle risposte dell’origine, configura l’origine per aggiungere un’intestazione Cache-Control con una direttiva no-cache che specifica Set-Cookie come nome di campo. Ad esempio: Cache-Control: no-cache="Set-Cookie". Per ulteriori informazioni, consulta l’argomento relativo alle direttive di controllo delle risposte della cache nello standard Hypertext Transfer Protocol (HTTP/1.1): Caching.

Lunghezza massima dei nomi dei cookie

Se configuri CloudFront per l’inoltro di cookie specifici all’origine, il numero totale di byte in tutti i nomi dei cookie configurati per l’inoltro da parte di CloudFront non può superare 512 meno il numero di cookie che si stanno inoltrando. Ad esempio, se si configura CloudFront in modo che inoltri 10 cookie al server di origine, la lunghezza complessiva dei nomi dei 10 cookie non può superare 502 byte (512 - 10).

Se configuri CloudFront in modo che inoltri tutti i cookie al server di origine, la lunghezza dei nomi di cookie non è rilevante.

Per ulteriori informazioni sull’utilizzo della console CloudFront per aggiornare una distribuzione in modo che CloudFront inoltri i cookie al server di origine, consulta Aggiornamento di una distribuzione. Per informazioni sull’utilizzo dell’API CloudFront per aggiornare una distribuzione, consulta UpdateDistribution nella Documentazione di riferimento dell’API di Amazon CloudFront.