Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Konten cache berdasarkan cookie
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 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 sumber Anda beberapa atau semua cookie dalam permintaan penampil, dan untuk menyimpan versi terpisah dari objek Anda berdasarkan nilai cookie yang diteruskan. Ketika Anda melakukan ini, CloudFront menggunakan beberapa atau semua cookie dalam permintaan penampil—mana saja 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. Ketika Anda CloudFront mengonfigurasi untuk menyimpan objek Anda berdasarkan nilai country cookie, CloudFront meneruskan permintaan locations.html ke asal dan menyertakan country cookie dan nilainya. Asal Anda kembalilocations.html, CloudFront dan menyimpan objek satu kali untuk permintaan di mana nilai country cookie adalah uk dan sekali untuk permintaan di mana nilainya beradafr.
penting
Amazon S3 dan beberapa server HTTP tidak memproses cookie. Jangan mengonfigurasi CloudFront untuk meneruskan cookie ke sumber yang tidak memproses cookie atau tidak memvariasikan responsnya berdasarkan cookie. Itu dapat CloudFront menyebabkan 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 mengonfigurasi CloudFront untuk meneruskan cookie itu.
Sebaliknya, jika asal kustom Anda bergantung pada cookie tertentu atau mengirimkan respons yang berbeda berdasarkan cookie, pastikan Anda mengonfigurasi CloudFront untuk meneruskan cookie tersebut ke sumber. 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, terutama Teruskan cookie dan Izinkan daftar cookie 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. Ketika asal Anda mengembalikan respons, CloudFront cache respons menggunakan nama dan nilai cookie dalam permintaan penampil. Jika respon asal menyertakan
Set-Cookieheader, mengem CloudFront balikannya ke penampil dengan objek yang diminta. CloudFront juga menyimpanSet-Cookieheader dengan objek yang dikembalikan dari asal, dan mengirimkanSet-Cookieheader tersebut ke pemirsa pada semua hit cache. -
Teruskan kumpulan cookie yang Anda tentukan — CloudFront menghapus cookie apa pun yang dikirim oleh penampil yang tidak ada di daftar izin sebelum meneruskan permintaan ke sumber. CloudFront menyimpan respons menggunakan nama dan nilai cookie yang tercantum dalam permintaan penampil. Jika respon asal menyertakan
Set-Cookieheader, mengem CloudFront balikannya ke penampil dengan objek yang diminta. CloudFront juga menyimpanSet-Cookieheader dengan objek yang dikembalikan dari asal, dan mengirimkanSet-Cookieheader tersebut ke pemirsa pada semua hit cache.Untuk informasi tentang menentukan wildcard dalam nama cookie, lihatIzinkan daftar cookie.
Untuk kuota saat ini tentang jumlah nama cookie yang dapat Anda teruskan untuk setiap perilaku cache, atau untuk meminta kuota yang lebih tinggi, lihatKuota pada string kueri (pengaturan cache warisan).
-
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 sumber Anda, dan menghapus
Set-Cookieheader dari tanggapan sebelum mengembalikan tanggapan kepada pemirsa Anda. Karena ini bukan cara optimal untuk menggunakan sumber daya asal Anda, saat 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 mengonfigurasi CloudFront untuk mencatat permintaan dan mencatat cookie, mencatat CloudFront semua cookie dan semua atribut cookie, bahkan jika Anda mengonfigurasi untuk CloudFront tidak meneruskan cookie ke sumber Anda atau jika Anda mengonfigurasi CloudFront untuk meneruskan hanya cookie tertentu. Untuk informasi selengkapnya tentang CloudFront logging, lihatLog akses (log standar).
- 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 kasus, CloudFront cache objek dua kali.
- CloudFront mengurutkan cookie
-
Jika CloudFront dikonfigurasi untuk meneruskan cookie (semua atau subset), CloudFront urutkan cookie dalam urutan alami berdasarkan nama cookie sebelum meneruskan permintaan ke asal Anda.
catatan
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-SincedanIf-None-Match-
If-Modified-Sincedan permintaanIf-None-Matchbersyarat 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 nam
a-nilai standar, misalnya: "Cookie: cookie1=value1; cookie2=value2" - Nonaktifkan cache
Set-Cookieheader -
Jika CloudFront dikonfigurasi untuk meneruskan cookie ke asal (baik semua atau cookie tertentu), itu juga menyimpan
Set-Cookieheader yang diterima dalam respon asal. CloudFront menyertakanSet-Cookieheader 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-Cookieheader dalam tanggapan asal Anda, konfigurasikan asal Anda untuk menambahkanCache-Controlheader dengan arahanno-cacheyang ditentukanSet-Cookiesebagai nama bidang. Sebagai contoh:Cache-Control: no-cache="Set-Cookie". Untuk informasi selengkapnya, lihat Ara Cache-Control han Respons di Hypertext Transfer Protocol (HTTP/1.1): Standar caching. - Panjang maksimum nama cookie
-
Jika Anda mengonfigurasi CloudFront untuk meneruskan cookie tertentu ke sumber 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 dari nama 10 cookie tidak dapat melebihi 502 byte (512 — 10).
Jika Anda CloudFront mengonfigurasi untuk meneruskan semua cookie ke asal Anda, panjang nama cookie tidak masalah.
Untuk informasi tentang menggunakan CloudFront konsol untuk memperbarui distribusi sehingga mener CloudFront uskan cookie ke asal, lihatPerbarui distribusi. Untuk informasi tentang menggunakan CloudFront API untuk memperbarui distribusi, lihat UpdateDistribution di Refer ensi CloudFront API Amazon.