

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Konten cache berdasarkan cookie
<a name="Cookies"></a>

Secara default, CloudFront tidak mempertimbangkan cookie saat memproses permintaan dan tanggapan, atau saat menyimpan objek Anda di lokasi tepi. Jika CloudFront menerima dua permintaan yang identik kecuali untuk apa yang ada di `Cookie` header, maka, secara default, CloudFront memperlakukan permintaan sebagai identik dan mengembalikan objek yang sama untuk kedua permintaan.

Anda dapat mengonfigurasi CloudFront untuk meneruskan ke asal Anda beberapa atau semua cookie dalam permintaan penampil, dan untuk menyimpan versi terpisah dari objek Anda berdasarkan nilai cookie yang diteruskannya. Saat Anda melakukan ini, CloudFront gunakan beberapa atau semua cookie dalam permintaan penampil — mana pun yang dikonfigurasi untuk diteruskan—untuk mengidentifikasi objek dalam cache secara unik.

Sebagai contoh, anggaplah bahwa permintaan untuk `locations.html` berisi sebuah cookie `country` yang memiliki nilai `uk` atau `fr`. Saat Anda mengonfigurasi CloudFront untuk menyimpan objek Anda berdasarkan nilai `country` cookie, CloudFront teruskan permintaan `locations.html` ke asal dan sertakan `country` cookie dan nilainya. Asal Anda kembali`locations.html`, dan CloudFront menyimpan objek satu kali untuk permintaan di mana nilai `country` cookie berada `uk` dan sekali untuk permintaan di mana nilainya. `fr`

**penting**  
Amazon S3 dan beberapa server HTTP tidak memproses cookie. Jangan mengkonfigurasi CloudFront untuk meneruskan cookie ke asal yang tidak memproses cookie atau tidak mengubah responsnya berdasarkan cookie. Itu dapat menyebabkan CloudFront untuk meneruskan lebih banyak permintaan ke asal untuk objek yang sama, yang memperlambat kinerja dan meningkatkan beban pada asal. Jika, mengingat contoh sebelumnya, asal Anda tidak memproses `country` cookie atau selalu mengembalikan versi yang sama dari `locations.html` ke CloudFront terlepas dari nilai `country` cookie, jangan konfigurasikan CloudFront untuk meneruskan cookie itu.  
Sebaliknya, jika asal kustom Anda bergantung pada cookie tertentu atau mengirimkan tanggapan berbeda berdasarkan cookie, pastikan Anda mengonfigurasi CloudFront untuk meneruskan cookie tersebut ke asal. Jika tidak, CloudFront hapus cookie sebelum meneruskan permintaan ke asal Anda.

Untuk mengonfigurasi penerusan cookie, Anda memperbarui perilaku cache distribusi. Untuk informasi lebih lanjut tentang perilaku cache, lihat [Pengaturan perilaku cache](DownloadDistValuesCacheBehavior.md), terutama [Teruskan cookie](DownloadDistValuesCacheBehavior.md#DownloadDistValuesForwardCookies) dan [Daftar cookie yang diizinkan](DownloadDistValuesCacheBehavior.md#DownloadDistValuesAllowlistCookies) bagian.

Anda dapat mengonfigurasi setiap perilaku cache untuk melakukan salah satu hal berikut:
+ **Teruskan semua cookie ke asal Anda —** CloudFront termasuk semua cookie yang dikirim oleh pemirsa saat meneruskan permintaan ke asal. Saat asal Anda mengembalikan respons, CloudFront cache respons menggunakan nama dan nilai cookie dalam permintaan penampil. Jika respons asal menyertakan `Set-Cookie` header, CloudFront mengembalikannya ke penampil dengan objek yang diminta. CloudFront juga menyimpan `Set-Cookie` header dengan objek yang dikembalikan dari asal, dan mengirimkan `Set-Cookie` header tersebut ke pemirsa di semua klik cache.
+ **Teruskan satu set cookie yang Anda tentukan —** CloudFront menghapus cookie apa pun yang dikirim penampil yang tidak ada dalam daftar yang diizinkan sebelum meneruskan permintaan ke asal. CloudFront cache respons menggunakan nama dan nilai cookie yang tercantum dalam permintaan penampil. Jika respons asal menyertakan `Set-Cookie` header, CloudFront mengembalikannya ke penampil dengan objek yang diminta. CloudFront juga menyimpan `Set-Cookie` header dengan objek yang dikembalikan dari asal, dan mengirimkan `Set-Cookie` header tersebut ke pemirsa di semua klik cache.

  Untuk informasi tentang menentukan wildcard dalam nama cookie, lihat. [Daftar cookie yang diizinkan](DownloadDistValuesCacheBehavior.md#DownloadDistValuesAllowlistCookies)

  Untuk kuota saat ini pada jumlah nama cookie yang dapat Anda teruskan untuk setiap perilaku cache, atau untuk meminta kuota yang lebih tinggi, lihat. [Kuota pada string kueri (pengaturan cache warisan)](cloudfront-limits.md#limits-allowlisted-query-strings)
+ **Jangan meneruskan cookie ke asal Anda —** CloudFront tidak menyimpan objek Anda berdasarkan cookie yang dikirim oleh pemirsa. Selain itu, CloudFront menghapus cookie sebelum meneruskan permintaan ke asal Anda, dan menghapus `Set-Cookie` header dari tanggapan sebelum mengembalikan tanggapan ke pemirsa Anda. Karena ini bukan cara optimal untuk menggunakan sumber daya asal Anda, ketika Anda memilih perilaku cache ini, Anda harus memastikan bahwa asal Anda tidak menyertakan cookie dalam respons asal secara default.

Perhatikan hal berikut tentang menentukan cookie yang ingin Anda teruskan:

**Log akses**  
Jika Anda CloudFront mengonfigurasi permintaan log dan mencatat cookie, CloudFront mencatat semua cookie dan semua atribut cookie, bahkan jika Anda mengonfigurasi untuk CloudFront tidak meneruskan cookie ke asal Anda atau jika Anda mengonfigurasi CloudFront untuk meneruskan hanya cookie tertentu. Untuk informasi selengkapnya tentang CloudFront pencatatan, lihat[Akses log (log standar)](AccessLogs.md).

**Sensitivitas kasus**  
Nama dan nilai cookie bersifat peka huruf besar-kecil. Misalnya, jika CloudFront dikonfigurasi untuk meneruskan semua cookie, dan dua permintaan penampil untuk objek yang sama memiliki cookie yang identik kecuali untuk kasus, CloudFront cache objek dua kali.

**CloudFront mengurutkan cookie**  
Jika CloudFront dikonfigurasi untuk meneruskan cookie (semua atau sebagian), CloudFront urutkan cookie dalam urutan alami berdasarkan nama cookie sebelum meneruskan permintaan ke asal Anda.  
 Nama cookie yang dimulai dengan `$` karakter tidak didukung. CloudFront akan menghapus cookie sebelum meneruskan permintaan ke asal. Anda dapat menghapus `$` karakter atau menentukan karakter yang berbeda di awal nama cookie.

**`If-Modified-Since` dan `If-None-Match`**  
`If-Modified-Since`dan permintaan `If-None-Match` bersyarat tidak didukung ketika CloudFront dikonfigurasi untuk meneruskan cookie (semua atau subset).

**Nama standar–format pasangan nilai diperlukan**  
CloudFront meneruskan header cookie hanya jika nilainya sesuai dengan format [pasangan nama-nilai standar](https://tools.ietf.org/html/rfc6265#section-4.1.1), misalnya: `"Cookie: cookie1=value1; cookie2=value2"`

**Nonaktifkan cache `Set-Cookie` header**  
Jika CloudFront dikonfigurasi untuk meneruskan cookie ke asal (baik semua atau cookie tertentu), itu juga menyimpan `Set-Cookie` header yang diterima dalam respons asal. CloudFront termasuk `Set-Cookie` header ini dalam responsnya terhadap penampil asli, dan juga memasukkannya dalam tanggapan berikutnya yang disajikan dari CloudFront cache.  
Jika Anda ingin menerima cookie di asal Anda tetapi Anda tidak CloudFront ingin menyimpan `Set-Cookie` header di tanggapan asal Anda, konfigurasikan asal Anda untuk menambahkan `Cache-Control` header dengan `no-cache` arahan yang menentukan `Set-Cookie` sebagai nama bidang. Sebagai contoh: `Cache-Control: no-cache="Set-Cookie"`. Untuk informasi lebih lanjut, lihat [Cache Respons-Arahan Kontrol](https://tools.ietf.org/html/rfc7234#section-5.2.2) dalam standar *Protokol Transfer Hiperteks (HTTP/1.1): Caching*.

**Panjang maksimum nama cookie**  
Jika Anda mengonfigurasi CloudFront untuk meneruskan cookie tertentu ke asal Anda, jumlah total byte di semua nama cookie yang Anda konfigurasikan CloudFront untuk diteruskan tidak dapat melebihi 512 dikurangi jumlah cookie yang Anda teruskan. Misalnya, jika Anda mengonfigurasi CloudFront untuk meneruskan 10 cookie ke asal Anda, panjang gabungan nama 10 cookie tidak dapat melebihi 502 byte (512 — 10).  
Jika Anda mengonfigurasi CloudFront untuk meneruskan semua cookie ke asal Anda, panjang nama cookie tidak menjadi masalah.

Untuk informasi tentang menggunakan CloudFront konsol untuk memperbarui distribusi sehingga CloudFront meneruskan cookie ke asal, lihat[Perbarui distribusi](HowToUpdateDistribution.md). Untuk informasi tentang menggunakan CloudFront API untuk memperbarui distribusi, lihat [UpdateDistribution](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_UpdateDistribution.html)di *Referensi CloudFront API Amazon*.