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 pencarian mencakup dua parameter, color=red
and size=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 CloudFront menyertakan parameter string kueri bahasa berdasarkan bahasa yang dipilih pengguna. Anda dapat mengonfigurasi CloudFront untuk meneruskan string kueri ke asal dan cache berdasarkan parameter bahasa. Jika Anda mengonfigurasi server web Anda 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 Andamain.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 berikut:
-
Beberapa HTTP server tidak memproses parameter string kueri dan, oleh karena itu, tidak mengembalikan versi objek yang berbeda berdasarkan nilai parameter. Untuk asal-usul ini, jika Anda mengonfigurasi CloudFront untuk meneruskan parameter string kueri ke asal, CloudFront tetap 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 mana yang Anda tentukan CloudFront untuk digunakan sebagai dasar untuk caching, dan urutan parameter yang muncul dalam string kueri.Contoh berikut menunjukkan apa yang terjadi jika Anda menggunakan pembatas yang berbeda dan Anda mengonfigurasi CloudFront ke cache hanya berdasarkan parameter:
color
-
Dalam permintaan berikut, CloudFront cache konten Anda berdasarkan nilai
color
parameter, tetapi CloudFront menafsirkan nilai sebagaired;size=large
:https://d111111abcdef8.cloudfront.net/images/image.jpg?
color=red;size=large
-
Dalam permintaan berikut, CloudFront cache konten Anda tetapi tidak mendasarkan caching pada parameter string kueri. Ini karena Anda dikonfigurasi CloudFront untuk cache berdasarkan
color
parameter, tetapi CloudFront menafsirkan string berikut sebagai hanya berisisize
parameter yang memiliki nilailarge;color=red
:https://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 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
Konsol dan API pengaturan untuk penerusan dan caching string kueri
Untuk mengonfigurasi penerusan dan caching string kueri di CloudFront konsol, lihat pengaturan berikut di: Referensi pengaturan distribusi
Untuk mengonfigurasi penerusan string kueri dan caching dengan CloudFront API, lihat CachePolicydan OriginRequestPolicydi Referensi Amazon. CloudFront API
Optimalkan caching
Saat Anda CloudFront mengonfigurasi cache berdasarkan parameter string kueri, Anda dapat mengambil langkah-langkah berikut untuk mengurangi jumlah permintaan yang CloudFront diteruskan ke asal Anda. Saat lokasi CloudFront tepi menyajikan objek, Anda mengurangi beban di server asal 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 teruskan permintaan ke asal Anda untuk setiap nilai parameter dan cache 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.
Sebaiknya Anda CloudFront mengonfigurasi 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 yang 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 menyebabkan CloudFront untuk meneruskan dua permintaan terpisah untuk image.jpg ke asal Anda dan untuk cache 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 menyebabkan CloudFront untuk 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 tanda tangan URLs
-
Jika Anda menggunakan tanda tangan URLs untuk membatasi akses ke konten Anda (jika Anda menambahkan tanda tangan tepercaya ke distribusi Anda), CloudFront hapus parameter string kueri berikut sebelum meneruskan sisanya ke asal Anda: URL
-
Expires
-
Key-Pair-Id
-
Policy
-
Signature
Jika Anda menggunakan tanda tangan URLs dan ingin mengonfigurasi CloudFront untuk meneruskan string kueri ke asal Anda, parameter string kueri Anda sendiri tidak dapat diberi nama
Expires
,,Key-Pair-Id
Policy
, atauSignature
. -
Parameter string kueri dan log CloudFront standar (log akses)
Jika Anda mengaktifkan logging, CloudFront log penuhURL, termasuk parameter string kueri. Ini benar terlepas dari apakah Anda telah mengonfigurasi CloudFront untuk meneruskan string kueri ke asal. Untuk informasi selengkapnya tentang CloudFront pencatatan, lihatKonfigurasikan dan gunakan log standar (log akses).