

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

# Konten cache berdasarkan header permintaan
<a name="header-caching"></a>

CloudFront memungkinkan Anda memilih apakah Anda CloudFront ingin meneruskan header ke asal Anda dan untuk menyimpan versi terpisah dari objek tertentu berdasarkan nilai header dalam permintaan penampil. Ini memungkinkan Anda untuk menyajikan versi konten yang berbeda berdasarkan perangkat yang digunakan pengguna, lokasi penampil, bahasa yang digunakan penampil, dan berbagai kriteria lainnya.

**Topics**
+ [Header dan distribusi – ikhtisar](#header-caching-web)
+ [Pilih header untuk mendasarkan caching](#header-caching-web-selecting)
+ [Konfigurasikan CloudFront untuk menghormati pengaturan CORS](#header-caching-web-cors)
+ [Konfigurasikan caching berdasarkan jenis perangkat](#header-caching-web-device)
+ [Konfigurasikan caching berdasarkan bahasa pemirsa](#header-caching-web-language)
+ [Konfigurasikan caching berdasarkan lokasi penampil](#header-caching-web-location)
+ [Konfigurasikan caching berdasarkan protokol permintaan](#header-caching-web-protocol)
+ [Konfigurasikan caching untuk file terkompresi](#header-caching-web-compressed)
+ [Bagaimana caching berdasarkan header memengaruhi kinerja](#header-caching-web-performance)
+ [Bagaimana kasus nilai header dan header memengaruhi caching](#header-caching-web-case)
+ [Header yang CloudFront kembali ke penampil](#header-caching-web-response)

## Header dan distribusi – ikhtisar
<a name="header-caching-web"></a>

Secara default, CloudFront tidak mempertimbangkan header saat menyimpan objek Anda di lokasi tepi. Jika asal Anda mengembalikan dua objek dan mereka hanya berbeda dengan nilai di header permintaan, CloudFront cache hanya satu versi objek.

Anda dapat mengonfigurasi CloudFront untuk meneruskan header ke asal, yang menyebabkan CloudFront cache beberapa versi objek berdasarkan nilai dalam satu atau beberapa header permintaan. CloudFront Untuk mengonfigurasi objek cache berdasarkan nilai header tertentu, Anda menentukan pengaturan perilaku cache untuk distribusi Anda. Untuk informasi lebih lanjut, lihat [ Cache Berdasarkan Header Permintaan yang Dipilih](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValuesForwardHeaders).

Misalnya, bayangkan permintaan penampil untuk `logo.jpg` berisi sebuah header `Product` kustom yang memiliki nilai `Acme` atau `Apex`. Saat Anda mengonfigurasi CloudFront untuk menyimpan objek Anda berdasarkan nilai `Product` header, CloudFront teruskan permintaan `logo.jpg` ke asal dan sertakan nilai `Product` header dan header. CloudFront cache `logo.jpg` sekali untuk permintaan di mana nilai `Product` header adalah `Acme` dan sekali untuk permintaan di mana nilainya. `Apex`

Anda dapat mengonfigurasi setiap perilaku cache dalam distribusi untuk melakukan salah satu hal berikut: 
+ Teruskan semua header ke asal Anda
**catatan**  
**Untuk pengaturan cache lama** — Jika Anda mengonfigurasi CloudFront untuk meneruskan semua header ke asal Anda, CloudFront tidak akan menyimpan objek yang terkait dengan perilaku cache ini. Alih-alih, email mengirimkan setiap permintaan ke sumber.
+ Teruskan daftar header yang Anda tentukan. CloudFront cache objek Anda berdasarkan nilai di semua header yang ditentukan. CloudFront juga meneruskan header yang diteruskan secara default, tetapi cache objek Anda hanya berdasarkan header yang Anda tentukan. 
+ Teruskan hanya header default. Dalam konfigurasi ini, CloudFront tidak men-cache objek Anda berdasarkan nilai di header permintaan.

Untuk kuota saat ini pada jumlah header yang dapat Anda teruskan untuk setiap perilaku cache atau untuk meminta kuota yang lebih tinggi, lihat. [Kuota pada header](cloudfront-limits.md#limits-custom-headers)

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

## Pilih header untuk mendasarkan caching
<a name="header-caching-web-selecting"></a>

Header yang dapat Anda teruskan ke asal dan yang CloudFront mendasari caching bergantung pada apakah asal Anda adalah ember Amazon S3 atau asal khusus.
+ **Amazon S3 -** Anda dapat mengonfigurasi CloudFront untuk meneruskan dan menyimpan objek berdasarkan sejumlah header tertentu (lihat daftar pengecualian berikut). Namun, kami menyarankan agar Anda menghindari penerusan header dengan asal Amazon S3 kecuali Anda perlu menerapkan berbagi sumber daya lintas asal (CORS) atau Anda ingin mempersonalisasi konten dengan menggunakan Lambda @Edge dalam acara yang menghadap ke asal.
  + Untuk mengonfigurasi CORS, Anda harus meneruskan header yang memungkinkan CloudFront untuk mendistribusikan konten untuk situs web yang diaktifkan untuk berbagi sumber daya lintas asal (CORS). Untuk informasi selengkapnya, lihat [Konfigurasikan CloudFront untuk menghormati pengaturan CORS](#header-caching-web-cors). 
  + Untuk mempersonalisasi konten dengan menggunakan header yang Anda teruskan ke asal Amazon S3, Anda menulis dan menambahkan fungsi Lambda @Edge dan mengaitkannya dengan distribusi CloudFront Anda untuk dipicu oleh peristiwa yang menghadap ke asal. Untuk informasi lebih lanjut tentang bekerja dengan header untuk mempersonalisasi konten, lihat [Personalisasi konten berdasarkan header negara atau jenis perangkat - contoh](lambda-examples.md#lambda-examples-redirecting-examples).

    Kami menyarankan Anda menghindari penerusan header yang tidak Anda gunakan untuk mempersonalisasi konten karena meneruskan header tambahan dapat mengurangi rasio hit cache Anda. Artinya, tidak CloudFront dapat melayani banyak permintaan dari cache tepi, sebagai proporsi dari semua permintaan.
+ **Asal yang disesuaikan ** – Anda dapat mengonfigurasi CloudFront untuk cache berdasarkan nilai header permintaan apa pun kecuali hal berikut:
  + `Connection`
  + `Cookie` – Jika Anda ingin meneruskan dan menyimpan berdasarkan cookie, Anda menggunakan pengaturan terpisah dalam distribusi Anda. Untuk informasi selengkapnya, lihat [Konten cache berdasarkan cookie](Cookies.md).
  + `Host (for Amazon S3 origins)`
  + `Proxy-Authorization`
  + `TE`
  + `Upgrade`

  Anda dapat CloudFront mengonfigurasi objek cache berdasarkan nilai di `User-Agent` header `Date` dan, tetapi kami tidak merekomendasikannya. Header ini memiliki banyak nilai yang mungkin, dan caching berdasarkan nilainya dapat menyebabkan CloudFront untuk meneruskan lebih banyak permintaan secara signifikan ke asal Anda.

Untuk daftar lengkap header permintaan HTTP dan cara CloudFront memprosesnya, lihat[Header dan CloudFront perilaku permintaan HTTP (asal kustom dan Amazon S3)](RequestAndResponseBehaviorCustomOrigin.md#request-custom-headers-behavior).

## Konfigurasikan CloudFront untuk menghormati pengaturan CORS
<a name="header-caching-web-cors"></a>

Jika Anda telah mengaktifkan cross-origin resource sharing (CORS) pada bucket Amazon S3 atau origin khusus, Anda harus memilih header tertentu untuk diteruskan, untuk menghargai pengaturan CORS. Header yang harus Anda teruskan berbeda tergantung asal (Amazon S3 atau custom) dan apakah Anda ingin melakukan cache `OPTIONS` tanggapan mereka.

**Amazon S3**
+ Jika Anda ingin `OPTIONS` respons yang harus disimpan, lakukan hal berikut:
  + Pilih opsi untuk pengaturan perilaku cache default yang mengaktifkan cache untuk `OPTIONS` tanggapan mereka. 
  + Konfigurasikan CloudFront untuk meneruskan header berikut:`Origin`,`Access-Control-Request-Headers`, dan`Access-Control-Request-Method`.
+ Jika Anda tidak ingin `OPTIONS` respons untuk disimpan, dikonfigurasi CloudFront untuk meneruskan `Origin` header, bersama dengan header lain yang diwajibkan oleh negara asal Anda (misalnya, `Access-Control-Request-Headers`, `Access-Control-Request-Method`, atau lainnya).

**Asal yang disesuaikan** – Meneruskan `Origin` beserta header lainnya yang diperlukan sesuai dengan asal Anda.

 CloudFront Untuk mengonfigurasi respons cache berdasarkan CORS, Anda harus mengonfigurasi CloudFront untuk meneruskan header dengan menggunakan kebijakan cache. Untuk informasi selengkapnya, lihat [Mengontrol kunci cache dengan kebijakan](controlling-the-cache-key.md).

Untuk informasi selengkapnya tentang CORS dan Amazon S3, [lihat Menggunakan berbagi sumber daya lintas asal (CORS)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/cors.html) di Panduan Pengguna Layanan Penyimpanan *Sederhana Amazon*.

## Konfigurasikan caching berdasarkan jenis perangkat
<a name="header-caching-web-device"></a>

Jika Anda CloudFront ingin menyimpan versi objek yang berbeda berdasarkan perangkat yang digunakan pengguna untuk melihat konten Anda, konfigurasikan CloudFront untuk meneruskan header yang berlaku ke asal kustom Anda:
+ `CloudFront-Is-Desktop-Viewer`
+ `CloudFront-Is-Mobile-Viewer`
+ `CloudFront-Is-SmartTV-Viewer`
+ `CloudFront-Is-Tablet-Viewer`

Berdasarkan nilai `User-Agent` header, CloudFront tetapkan nilai header ini ke `true` atau `false` sebelum meneruskan permintaan ke asal Anda. Jika perangkat termasuk dalam lebih dari satu kategori, lebih dari satu nilai mungkin `true`. Misalnya, untuk beberapa perangkat tablet, CloudFront mungkin mengatur keduanya `CloudFront-Is-Mobile-Viewer` dan `CloudFront-Is-Tablet-Viewer` ke`true`.

## Konfigurasikan caching berdasarkan bahasa pemirsa
<a name="header-caching-web-language"></a>

Jika Anda CloudFront ingin menyimpan versi objek yang berbeda berdasarkan bahasa yang ditentukan dalam permintaan, konfigurasikan CloudFront untuk meneruskan `Accept-Language` header ke asal Anda.

## Konfigurasikan caching berdasarkan lokasi penampil
<a name="header-caching-web-location"></a>

Jika Anda CloudFront ingin menyimpan versi objek yang berbeda berdasarkan negara asal permintaan, konfigurasikan CloudFront untuk meneruskan `CloudFront-Viewer-Country` header ke asal Anda. CloudFront secara otomatis mengubah alamat IP tempat permintaan berasal menjadi kode negara dua huruf. Untuk easy-to-use daftar kode negara, dapat diurutkan berdasarkan kode dan nama negara, lihat entri Wikipedia [ISO 3166-1](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) alpha-2.

## Konfigurasikan caching berdasarkan protokol permintaan
<a name="header-caching-web-protocol"></a>

Jika Anda CloudFront ingin menyimpan versi objek yang berbeda berdasarkan protokol permintaan, HTTP atau HTTPS, konfigurasikan CloudFront untuk meneruskan `CloudFront-Forwarded-Proto` header ke asal Anda.

## Konfigurasikan caching untuk file terkompresi
<a name="header-caching-web-compressed"></a>

Jika asal Anda mendukung kompresi Brotli, Anda dapat melakukan cache berdasarkan header. `Accept-Encoding` Konfigurasi cache berdasarkan pada `Accept-Encoding` hanya jika asal Anda melayani konten yang berbeda berdasarkan header.

## Bagaimana caching berdasarkan header memengaruhi kinerja
<a name="header-caching-web-performance"></a>

Saat Anda CloudFront mengonfigurasi cache berdasarkan satu atau beberapa header dan header memiliki lebih dari satu nilai yang mungkin, CloudFront teruskan lebih banyak permintaan ke server asal Anda untuk objek yang sama. Hal ini memperlambat kinerja dan meningkatkan beban pada server asal Anda. Jika server asal Anda mengembalikan objek yang sama terlepas dari nilai header yang diberikan, sebaiknya Anda tidak CloudFront mengonfigurasi cache berdasarkan header tersebut. 

Jika Anda mengonfigurasi CloudFront untuk meneruskan lebih dari satu header, urutan header dalam permintaan penampil tidak memengaruhi caching selama nilainya sama. Misalnya, jika satu permintaan berisi header A: 1, B: 2 dan permintaan lain berisi B: 2, A: 1, cache hanya satu salinan objek. CloudFront 

## Bagaimana kasus nilai header dan header memengaruhi caching
<a name="header-caching-web-case"></a>

Ketika CloudFront cache berdasarkan nilai header, itu tidak mempertimbangkan kasus nama header, tetapi mempertimbangkan kasus nilai header:
+ Jika permintaan penampil menyertakan keduanya `Product:Acme` dan`product:Acme`, CloudFront cache objek hanya sekali. Satu-satunya perbedaan di antara keduanya adalah kasus nama header, yang tidak memengaruhi caching.
+ Jika permintaan penampil menyertakan keduanya `Product:Acme` dan`Product:acme`, CloudFront cache objek dua kali, karena nilainya ada `Acme` di beberapa permintaan dan `acme` permintaan lainnya.

## Header yang CloudFront kembali ke penampil
<a name="header-caching-web-response"></a>

Mengkonfigurasi CloudFront untuk meneruskan dan menyimpan header tidak memengaruhi header mana yang CloudFront kembali ke penampil. CloudFront mengembalikan semua header yang didapatnya dari asal dengan beberapa pengecualian. Untuk informasi selengkapnya, lihat topik yang berlaku:
+ **Asal Amazon S3 – ** Lihat [Header respons HTTP yang CloudFront menghapus atau memperbarui](RequestAndResponseBehaviorS3Origin.md#response-s3-removed-headers).
+ **Asal yang disesuaikan – ** Lihat [Header respons HTTP yang CloudFront menghapus atau menggantikan](RequestAndResponseBehaviorCustomOrigin.md#ResponseCustomRemovedHeaders).