Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Konten cache berdasarkan parameter string kueri
Beberapa aplikasi web menggunakan string pencarian untuk mengirimkan informasi ke sumber. String kueri adalah bagian dari permintaan web yang muncul setelah ? karakter; string dapat berisi satu atau lebih parameter, dipisahkan oleh & karakter. Dalam contoh berikut, string kueri mencakup dua parameter, color=red dansize=large:
https://d111111abcdef8.cloudfront.net/images/image.jpg?color=red&size=large
Untuk distribusi, Anda dapat memilih apakah Anda CloudFront ingin meneruskan string kueri ke asal Anda dan apakah akan menyimpan konten Anda berdasarkan semua parameter atau parameter yang dipilih. Mengapa hal ini mungkin berguna? Pertimbangkan contoh berikut.
Misalkan situs web Anda tersedia dalam lima bahasa. Struktur direktori dan nama file untuk kelima versi situs web ini adalah identik. Saat pengguna melihat situs web Anda, permintaan yang diteruskan untuk menyer CloudFront takan parameter string kueri bahasa berdasarkan bahasa yang dipilih pengguna. Anda dapat CloudFront mengonfigurasi untuk meneruskan string kueri ke asal dan cache berdasarkan parameter bahasa. Jika Anda mengonfigurasi server web untuk mengembalikan versi halaman tertentu yang sesuai dengan bahasa yang dipilih, CloudFront cache setiap versi bahasa secara terpisah, berdasarkan nilai parameter string kueri bahasa.
Dalam contoh ini, jika halaman utama untuk situs web Anda adalahmain.html, lima permintaan berikut CloudFront menyebabkan cache main.html lima kali, sekali untuk setiap nilai parameter string kueri bahasa:
-
https://d111111abcdef8.cloudfront.net/main.html?language=de -
https://d111111abcdef8.cloudfront.net/main.html?language=en -
https://d111111abcdef8.cloudfront.net/main.html?language=es -
https://d111111abcdef8.cloudfront.net/main.html?language=fr -
https://d111111abcdef8.cloudfront.net/main.html?language=jp
Perhatikan hal-hal berikut:
-
Beberapa server HTTP tidak memproses parameter string kueri dan, oleh karena itu, tidak mengembalikan versi objek yang berbeda berdasarkan nilai parameter. Untuk asal ini, jika Anda mengonfigurasi CloudFront untuk meneruskan parameter string kueri ke asal, CloudFront tetap menyimpan cache berdasarkan nilai parameter meskipun asal mengembalikan versi objek yang identik CloudFront untuk setiap nilai parameter.
-
Untuk parameter string pencarian agar berfungsi seperti yang dijelaskan dalam contoh di atas dengan bahasa, Anda harus menggunakan
&karakter sebagai pembatas antara parameter string pencarian. Jika Anda menggunakan pembatas yang berbeda, Anda mungkin mendapatkan hasil yang tidak terduga, tergantung pada parameter yang Anda tentukan CloudFront untuk digunakan sebagai dasar untuk caching, dan urutan parameter muncul dalam string kueri.Contoh berikut menunjukkan apa yang terjadi jika Anda menggunakan pembatas yang berbeda dan Anda mengonfigurasi CloudFront untuk cache hanya berdasarkan parameter:
color-
Dalam permintaan berikut, CloudFront menyimpan konten Anda berdasarkan nilai
colorparameter, tetapi menafsirkan CloudFront nilainya sebagai:red;size=largehttps://d111111abcdef8.cloudfront.net/images/image.jpg?color=red;size=large -
Dalam permintaan berikut, menyimpan konten CloudFront Anda tetapi tidak mendasarkan caching pada parameter string kueri. Ini karena Anda mengonfigur CloudFront asi untuk cache berdasarkan
colorparameter, tetapi CloudFront menafsirkan string berikut sebagai hanya berisisizeparameter yang memiliki nilai:large;color=redhttps://d111111abcdef8.cloudfront.net/images/image.jpg?size=large;color=red
-
Anda dapat mengonfigurasi CloudFront untuk melakukan salah satu hal berikut:
-
Jangan meneruskan string kueri ke asal sama sekali. Jika Anda tidak meneruskan string kueri, CloudFront tidak melakukan cache berdasarkan parameter string kueri.
-
Teruskan string kueri ke asal, dan simpan berdasarkan semua parameter dalam string kueri.
-
Teruskan string kueri ke asal, dan cache berdasarkan parameter yang ditentukan dalam string kueri.
Untuk informasi selengkapnya, lihat Optimalkan caching.
Topik
Pengaturan konsol dan API untuk penerusan string dan caching kueri
Saat Anda membuat distribusi di CloudFront konsol, mengon CloudFront figurasi penerusan string kueri dan caching untuk Anda berdasarkan jenis asal Anda. Secara opsional, Anda dapat mengedit pengaturan ini secara manual. Untuk informasi selengkapnya, lihat pengaturan berikut diSemua referensi pengaturan distribusi:
Untuk mengonfigurasi penerusan string kueri dan caching dengan CloudFront API, lihat CachePolicy dan OriginRequestPolicy di Refer ensi CloudFront API Amazon.
Optimalkan caching
Saat CloudFront mengonfigurasi cache berdasarkan parameter string kueri, Anda dapat mengambil langkah-langkah berikut untuk mengurangi jumlah permintaan yang diter CloudFront uskan ke asal Anda. Saat lokasi CloudFront tepi melayani objek, Anda mengurangi beban pada server asal Anda dan mengurangi latensi karena objek dilayani dari lokasi yang lebih dekat dengan pengguna Anda.
- Cache hanya berdasarkan parameter yang asal Anda mengembalikan versi objek yang berbeda
-
Untuk setiap parameter string kueri yang diteruskan aplikasi web AndaCloudFront, CloudFront meneruskan permintaan ke asal Anda untuk setiap nilai parameter dan menyimpan versi terpisah dari objek untuk setiap nilai parameter. Hal ini berlaku bahkan jika asal Anda selalu mengembalikan objek yang sama terlepas dari nilai parameter. Untuk parameter multipel, jumlah permintaan dan jumlah objek berlipat ganda.
Kami menyarankan Anda mengonfigurasi CloudFront untuk cache hanya berdasarkan parameter string kueri yang asal Anda mengembalikan versi yang berbeda, dan Anda mempertimbangkan dengan cermat manfaat caching berdasarkan setiap parameter. Misalnya, Anda memiliki situs web ritel. Ada gambar jaket dengan enam warna berbeda, dan jaket ini tersedia dalam 10 ukuran berbeda. Gambar yang Anda miliki pada jaket menunjukkan warna yang berbeda tetapi tidak berbeda ukuran. Untuk mengoptimalkan caching, Anda harus CloudFront mengkonfigurasi cache hanya berdasarkan parameter warna, bukan pada parameter ukuran. Ini meningkatkan kemungkinan bahwa CloudFront dapat melayani permintaan dari cache, yang meningkatkan kinerja dan mengurangi beban pada asal Anda.
- Selalu daftar parameter dalam urutan yang sama
-
Urutan parameter penting dalam string kueri. Dalam contoh berikut, string kueri identik kecuali bahwa parameter berada dalam urutan yang berbeda. Hal ini CloudFront menyebabkan meneruskan dua permintaan terpisah untuk image.jpg ke asal Anda dan menyimpan dua versi terpisah dari objek:
-
https://d111111abcdef8.cloudfront.net/images/image.jpg?color=red&size=large -
https://d111111abcdef8.cloudfront.net/images/image.jpg?size=large&color=red
Kami menyarankan Anda untuk selalu mencantumkan nama parameter dalam urutan yang sama, seperti urutan abjad.
-
- Selalu gunakan kasus yang sama untuk nama dan nilai parameter
-
CloudFront mempertimbangkan kasus nama parameter dan nilai saat caching berdasarkan parameter string kueri. Dalam contoh berikut, string pencarian identik kecuali untuk kasus nama dan nilai parameter. Hal ini CloudFront menyebabkan meneruskan empat permintaan terpisah untuk image.jpg ke asal Anda dan menyimpan empat versi terpisah dari objek:
-
https://d111111abcdef8.cloudfront.net/images/image.jpg?color=red -
https://d111111abcdef8.cloudfront.net/images/image.jpg?color=Red -
https://d111111abcdef8.cloudfront.net/images/image.jpg?Color=red -
https://d111111abcdef8.cloudfront.net/images/image.jpg?Color=Red
Kami menyarankan agar Anda menggunakan kasus secara konsisten untuk nama dan nilai parameter, seperti semua huruf kecil.
-
- Jangan gunakan nama parameter yang bertentangan dengan URL yang ditandatangani
-
Jika Anda menggunakan URL yang ditandatangani untuk membatasi akses ke konten Anda (jika Anda menambahkan penandatangan tepercaya ke distribusi) CloudFront , hapus parameter string kueri berikut sebelum meneruskan sisa URL ke sumber Anda:
-
Expires -
Key-Pair-Id -
Policy -
Signature
Jika Anda menggunakan URL yang ditandatangani dan ingin mengonfigurasi CloudFront untuk meneruskan string kueri ke asal, parameter string kueri Anda sendiri tidak dapat diberi
Expiresnama,Key-Pair-Id,Policy, atauSignature. -
Parameter string kueri dan log CloudFront standar (log akses)
Jika Anda mengaktifkan logging, CloudFront log URL lengkap, termasuk parameter string kueri. Ini benar terlepas dari apakah Anda telah mengonfigurasi CloudFront untuk meneruskan string kueri ke asal. Untuk informasi selengkapnya tentang CloudFront logging, lihatLog akses (log standar).