Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Memahami kebijakan header respons
Anda dapat menggunakan kebijakan header respons untuk menentukan header HTTP yang dihapus atau ditambahkan Amazon CloudFront dalam tanggapan yang dikirimkan ke pemirsa. Untuk informasi selengkapnya tentang kebijakan header respons dan alasan menggunakannya, lihatMenambahkan atau menghapus header HTTP dalam CloudFront tanggapan dengan kebijakan.
Topik berikut menjelaskan pengaturan dalam kebijakan header respons. Pengaturan dikelompokkan ke dalam kategori, yang diwakili dalam topik berikut.
Topik
Rincian kebijakan (metadata)
Setelan detail kebijakan berisi metadata tentang kebijakan header respons.
-
Nama — Nama untuk mengidentifikasi kebijakan header respons. Di konsol, Anda menggunakan nama untuk melampirkan kebijakan ke perilaku cache.
-
Deskripsi (opsional) — Komentar untuk menjelaskan kebijakan header respons. Ini opsional, tetapi dapat membantu Anda mengidentifikasi tujuan kebijakan.
Header CORS
Pengaturan berbagi sumber daya lintas asal (CORS) memungkinkan Anda menambahkan dan mengonfigurasi header CORS dalam kebijakan header respons.
Daftar ini berfokus pada cara menentukan pengaturan dan nilai yang valid dalam kebijakan header respons. Untuk informasi selengkapnya tentang masing-masing header ini dan bagaimana mereka digunakan untuk permintaan dan tanggapan CORS dunia nyata, lihat berbagi sumber daya lintas asal
- Access-Control-Allow-Credentials
-
Ini adalah pengaturan Boolean (
trueataufalse) yang menentukan apakah CloudFront menambahkanAccess-Control-Allow-Credentialsheader dalam menanggapi permintaan CORS. Ketika pengaturan ini disetel ketrue, CloudFront menambahkanAccess-Control-Allow-Credentials: trueheader dalam tanggapan terhadap permintaan CORS. Jika CloudFront tidak, tidak menambahkan header ini ke tanggapan. - Access-Control-Allow-Headers
-
Menentukan nama header yang CloudFront digunakan sebagai nilai untuk
Access-Control-Allow-Headersheader dalam menanggapi permintaan preflight CORS. Nilai yang valid untuk pengaturan ini termasuk nama header HTTP atau karakter wildcard (*), yang menunjukkan bahwa semua header diizinkan.catatan
AuthorizationHeader tidak dapat menggunakan wildcard dan harus dicantumkan secara eksplisit.Contoh penggunaan karakter wildcard yang valid Contoh Akan cocok Tidak akan cocok x-amz-*x-amz-testx-amz-x-amzx-*-amzx-test-amzx--amz*Semua header kecuali AuthorizationAuthorization - Access-Control-Allow-Methods
-
Menentukan metode HTTP yang CloudFront digunakan sebagai nilai untuk
Access-Control-Allow-Methodsheader dalam menanggapi permintaan preflight CORS. Nilai yang valid adalahGETDELETE,HEAD,OPTIONS,PATCH,POST,PUT, danALL.ALLadalah nilai khusus yang mencakup semua metode HTTP yang terdaftar. - Access-Control-Allow-Origin
-
Menentukan nilai yang CloudFront dapat digunakan dalam header
Access-Control-Allow-Originrespons. Nilai yang valid untuk pengaturan ini mencakup asal tertentu (sepertihttp://www.example.com) atau karakter wildcard (*), yang menunjukkan bahwa semua asal diperbolehkan.Catatan
-
Karakter wildcard (
*) diperbolehkan sebagai subdomain paling kiri ().*.example.org -
Karakter wildcard (
*) tidak diperbolehkan di posisi berikut:-
Top-level domain (
example.*) -
Di sebelah kanan subdomain (
test.*.example.org) atau dalam subdomain apa pun ()*test.example.org -
Di dalam istilah (
exa*mple.org)
-
Untuk contoh cara menggunakan karakter wildcard, lihat tabel berikut.
Contoh Akan cocok Tidak akan cocok http://*.example.orghttp://www.example.orghttp://test.example.orghttps://test.example.orghttps://test.example.org:123http://test.example.org:123*.example.orgtest.example.orgtest.test.example.org.example.orghttp://test.example.orghttps://test.example.orghttp://test.example.org:123https://test.example.org:123example.orghttp://example.orghttps://example.orghttp://example.orghttps://example.orghttp://example.org:123http://example.org:*http://example.org:123http://example.orghttp://example.org:1*3http://example.org:123http://example.org:1893http://example.org:13*.example.org:1*test.example.org:123 -
- Access-Control-Expose-Headers
-
Menentukan nama header yang CloudFront digunakan sebagai nilai untuk
Access-Control-Expose-Headersheader dalam menanggapi permintaan CORS. Nilai yang valid untuk pengaturan ini termasuk nama header HTTP atau karakter wildcard (*). - Access-Control-Max-Age
-
Sejumlah detik, yang CloudFront digunakan sebagai nilai untuk
Access-Control-Max-Ageheader dalam menanggapi permintaan preflight CORS. - Penggantian asal
-
Setelan Boolean yang menentukan bagaimana CloudFront berperilaku ketika respons dari asal berisi salah satu header CORS yang juga ada dalam kebijakan.
-
Saat diset
trueel ke dan respon asal berisi header CORS yang juga ada di kebijakan CloudFront , tambahkan header CORS dalam kebijakan ke respons. CloudFront kemudian mengirimkan respons itu ke pemirsa. CloudFront mengabaikan header yang diterimanya dari asal. -
Ketika diset
falseel ke dan respon asal berisi header CORS (terlepas dari apakah header CORS ada dalam kebijakan), menyer CloudFront takan header CORS yang diterimanya dari asal ke respons. CloudFront tidak menambahkan header CORS apa pun dalam kebijakan ke respons yang dikirim ke penampil.
-
Header keamanan
Anda dapat menggunakan setelan header keamanan untuk menambahkan dan mengonfigurasi beberapa header respons HTTP terkait keamanan dalam kebijakan header respons.
Daftar ini menjelaskan cara menentukan setelan dan nilai yang valid dalam kebijakan header respons. Untuk informasi selengkapnya tentang masing-masing header ini dan bagaimana mereka digunakan dalam respons HTTP dunia nyata, lihat tautan ke Dokumen Web MDN.
- Content-Security-Policy
-
Menentukan arahan kebijakan keamanan konten CloudFront yang digunakan sebagai nilai untuk header
Content-Security-Policyrespons.Untuk informasi selengkapnya tentang header ini dan arahan kebijakan yang valid, lihat Content-Security-Policy
di MDN Web Docs. catatan
Nilai
Content-Security-Policyheader dibatasi hingga 1783 karakter. - Referrer-Policy
-
Menentukan direktif kebijakan perujuk CloudFront yang digunakan sebagai nilai untuk header
Referrer-Policyrespons. Nilai yang valid untuk pengaturan ini adalahno-referrerno-referrer-when-downgrade,origin,origin-when-cross-origin,same-origin,strict-origin,strict-origin-when-cross-origin, danunsafe-url.Untuk informasi selengkapnya tentang header ini dan arahan ini, lihat Referrer-Policy
di MDN Web Docs. - Strict-Transport-Security
-
Menentukan arahan dan pengaturan CloudFront yang digunakan sebagai nilai untuk header
Strict-Transport-Securityrespons. Untuk pengaturan ini, Anda secara terpisah menentukan:-
Sejumlah detik, CloudFront yang digunakan sebagai nilai untuk
max-agedirektif header ini -
Pengaturan Boolean (
trueataufalse) untukpreload, yang menentukan apakah menyer CloudFront takan direkpreloadtif dalam nilai header ini -
Pengaturan Boolean (
trueataufalse) untukincludeSubDomains, yang menentukan apakah menyer CloudFront takan direkincludeSubDomainstif dalam nilai header ini
Untuk informasi selengkapnya tentang header ini dan arahan ini, lihat Strict-Transport-Security
di MDN Web Docs. -
- X-Content-Type-Options
-
Ini adalah pengaturan Boolean (
trueataufalse) yang menentukan apakah CloudFront menambahkanX-Content-Type-Optionsheader ke respons. Ketika pengaturan initrue, CloudFront tambahkanX-Content-Type-Options: nosniffheader ke respons. Jika CloudFront tidak, tidak menambahkan header ini.Untuk informasi selengkapnya tentang header ini, lihat X-Content-Type-Options
di MDN Web Docs. - X-Frame-Options
-
Menentukan direktif CloudFront yang digunakan sebagai nilai untuk header
X-Frame-Optionsrespons. Nilai yang valid untuk pengaturan ini adalahDENYatauSAMEORIGIN.Untuk informasi selengkapnya tentang header ini dan arahan ini, lihat X-Frame-Options
di MDN Web Docs. - X-XSS-Protection
-
Menentukan arahan dan pengaturan CloudFront yang digunakan sebagai nilai untuk header
X-XSS-Protectionrespons. Untuk pengaturan ini, Anda secara terpisah menentukan:-
Peng
X-XSS-Protectionaturan0(menonaktifkan penyaringan XSS) atau1(mengaktifkan pemfilteran XSS) -
Pengaturan Boolean (
trueataufalse) untukblock, yang menentukan apakah menyer CloudFront takan direktifmode=blockdalam nilai untuk header ini -
URI pelaporan, yang menentukan apakah CloudFront menyertakan
report=direktif dalam nilai untuk header inireporting URI
Anda dapat menentukan
trueuntukblock, atau Anda dapat menentukan URI pelaporan, tetapi Anda tidak dapat menentukan keduanya bersama-sama. Untuk informasi selengkapnya tentang header ini dan arahan ini, lihat X-XSS-Protectiondi MDN Web Docs. -
- Penggantian asal
-
Masing-masing pengaturan header keamanan ini berisi pengaturan Boolean (
trueataufalse) yang menentukan bagaimana CloudFront berperilaku ketika respons dari asal berisi header tersebut.Bila setelan ini diset
trueel ke dan respon asal berisi CloudFront header, tambahkan header dalam kebijakan ke respons yang dikirimkan ke penampil. CloudFront akan mengabaikan header yang diterima dari asal.Ketika pengaturan ini diset
falseel ke dan respons asal berisi header, CloudFront sertakan header yang diterima dari asal dalam respons yang dikirimkannya ke penampil.Jika respon asal tidak berisi header, CloudFront tambahkan header dalam kebijakan ke respons yang dikirimkan ke penampil. CloudFront melakukan ini ketika pengaturan ini disetel ke
trueataufalse.
Header kustom
Anda dapat menggunakan setelan header khusus untuk menambahkan dan mengonfigurasi header HTTP kustom dalam kebijakan header respons. CloudFront menambahkan header ini ke setiap respons yang dikembalikan ke pemirsa. Untuk setiap header kustom, Anda juga menentukan nilai untuk header, meskipun menentukan nilai adalah opsional. Ini karena CloudFront dapat menambahkan header respons tanpa nilai.
Setiap header kustom juga memiliki pengaturan peng gantian Origin sendiri:
-
Jika setelan ini diset
trueel ke dan respons asal berisi header kustom yang ada di kebijakan CloudFront , tambahkan header kustom dalam kebijakan ke respons yang dikirimkan ke penampil. CloudFront akan mengabaikan header yang diterima dari asal. -
Jika pengaturan ini
falsedan respons asal berisi header kustom yang ada di kebijakan, ser CloudFront takan header kustom yang diterima dari asal dalam respons yang dikirimkan ke penampil. -
Jika respons asal tidak berisi header kustom yang ada di kebijakan, CloudFront tambahkan header kustom dalam kebijakan ke respons yang dikirimkan ke penampil. CloudFront melakukan ini ketika pengaturan ini disetel ke
trueataufalse.
Menghapus header
Anda dapat menentukan header yang CloudFront ingin Anda hapus dari tanggapan yang diterimanya dari asal sehingga header tidak disertakan dalam tanggapan yang dikirim ke pemir CloudFront sa. CloudFront menghapus header dari setiap respons yang dikirimkannya ke pemirsa, apakah objek disajikan dari CloudFront cache atau dari asal. Misalnya, Anda dapat menghapus header yang tidak berguna untuk browser, seperti X-Powered-By atauVary, sehingga CloudFront menghapus header ini dari tanggapan yang dikirim ke pemirsa.
Saat Anda menentukan header yang akan dihapus menggunakan kebijakan header respons, hapus header CloudFront terlebih dahulu, lalu tambahkan header apa pun yang ditentukan di bagian lain dari kebijakan header respons (header CORS, header keamanan, header kustom, dan sebagainya). Jika Anda menentukan header untuk dihapus tetapi juga menambahkan header yang sama di bagian lain kebijakan, ser CloudFront takan header dalam tanggapan yang dikirim ke pemirsa.
catatan
Anda dapat menggunakan kebijakan header respons untuk menghapus Date header Server dan yang CloudFront diterima dari sumber, sehingga header ini (sebagaimana diterima dari asal) tidak disertakan dalam tanggapan yang dikirim ke pemirsa CloudFront . Namun, jika Anda melakukannya, tambahkan CloudFront versi header ini sendiri ke tanggapan yang dikirimkannya ke pemirsa. Untuk Server header yang CloudFront menambahkan, nilai header adalahCloudFront.
Header yang tidak dapat Anda hapus
Anda tidak dapat menghapus header berikut menggunakan kebijakan header respons. Jika Anda menentukan header ini di bagian Hapus header dari kebijakan header respons (ResponseHeadersPolicyRemoveHeadersConfigdi API), Anda menerima kesalahan.
-
Connection -
Content-Encoding -
Content-Length -
Expect -
Host -
Keep-Alive -
Proxy-Authenticate -
Proxy-Authorization -
Proxy-Connection -
Trailer -
Transfer-Encoding -
Upgrade -
Via -
Warning -
X-Accel-Buffering -
X-Accel-Charset -
X-Accel-Limit-Rate -
X-Accel-Redirect -
X-Amz-Cf-.* -
X-Amzn-Auth -
X-Amzn-Cf-Billing -
X-Amzn-Cf-Id -
X-Amzn-Cf-Xff -
X-Amzn-ErrorType -
X-Amzn-Fle-Profile -
X-Amzn-Header-Count -
X-Amzn-Header-Order -
X-Amzn-Lambda-Integration-Tag -
X-Amzn-RequestId -
X-Edge-.* -
X-Forwarded-Proto -
X-Real-Ip
Server-Timing tajuk
Gunakan pengaturan Server-Timing header untuk mengaktifkan Server-Timing header dalam tanggapan HTTP yang dikirim dari CloudFront. Anda dapat menggunakan header ini untuk melihat metrik yang dapat membantu Anda mendapatkan wawasan tentang perilaku dan kinerja CloudFront dan asal Anda. Misalnya, Anda dapat melihat lapisan cache yang menyajikan cache hit. Atau, Anda dapat melihat latensi byte pertama dari asal jika ada kesalahan cache. Metrik di Server-Timing header dapat membantu Anda memecahkan masalah atau menguji efisiensi konfigurasi CloudFront atau konfigurasi asal Anda.
Untuk informasi selengkapnya tentang menggunakan Server-Timing header dengan CloudFront, lihat topik berikut.
Untuk mengaktifkan Server-Timing header, buat (atau edit) kebijakan header respons.
Topik
Tingkat pengambilan sampel dan header permintaan Pragma
Saat Anda mengaktifkan Server-Timing header dalam kebijakan header respons, Anda juga menentukan tingkat pengambilan sampel. Tingkat pengambilan sampel adalah angka 0-100 (inklusif) yang menentukan persentase respons yang CloudFront ingin Anda tambahkan Server-Timing header. Saat Anda menyetel tingkat pengambilan sampel ke 100, CloudFront menambahkan Server-Timing header ke respons HTTP untuk setiap permintaan yang cocok dengan perilaku cache yang dilampirkan kebijakan header respons. Ketika Anda mengaturnya ke 50, CloudFront menambahkan header ke 50% dari tanggapan untuk permintaan yang cocok dengan perilaku cache. Anda dapat mengatur laju pengambilan sampel ke angka 0-100 dengan hingga empat tempat desimal.
Bila tingkat pengambilan sampel disetel ke angka yang lebih rendah dari 100, Anda tidak dapat mengontrol respons mana yang CloudFront menambahkan Server-Timing header, hanya persentasenya. Namun, Anda dapat menambahkan Pragma header dengan nilai yang diset server-timing el ke dalam permintaan HTTP untuk menerima Server-Timing header dalam respons terhadap permintaan itu. Ini berfungsi tidak peduli berapa laju pengambilan sampel yang diatur. Bahkan ketika tingkat pengambilan sampel diatur ke nol (0), CloudFront menambahkan Server-Timing header ke respons jika permintaan berisi Pragma: server-timing header.
Server-Timing header dari asal
Ketika ada cache yang melewatkan CloudFront dan meneruskan permintaan ke asal, asal mungkin menyertakan Server-Timing header dalam responsnya. CloudFront Dalam hal ini, CloudFront tambahkan metriknya ke Server-Timing header yang diterimanya dari asal. Respons yang CloudFront dikirim ke penampil berisi satu Server-Timing header yang menyertakan nilai yang berasal dari asal dan metrik yang CloudFront ditambahkan. Nilai header dari asal mungkin berada di akhir, atau di antara dua set metrik yang CloudFront ditambahkan ke header.
Ketika ada hit cache, respons yang dikirim CloudFront ke penampil berisi satu Server-Timing header yang hanya menyertakan CloudFront metrik dalam nilai header (nilai dari asal tidak disertakan).
Server-Timing metrik header
Saat CloudFront menambahkan Server-Timing header ke respons HTTP, nilai header berisi satu atau lebih metrik yang dapat membantu Anda mendapatkan wawasan tentang perilaku dan kinerja CloudFront dan asal Anda. Daftar berikut berisi semua metrik dan nilai potensinya. Server-TimingHeader hanya berisi beberapa metrik ini, tergantung pada sifat permintaan dan respons melalui CloudFront.
Beberapa metrik ini disertakan dalam Server-Timing header dengan nama saja (tanpa nilai). Lainnya adalah nama dan nilai. Ketika metrik memiliki nilai, nama dan nilai dipisahkan oleh titik koma (;). Ketika header berisi lebih dari satu metrik, metrik dipisahkan oleh koma (,).
- cdn-cache-hit
-
CloudFront memberikan respons dari cache tanpa membuat permintaan ke asal.
- cdn-cache-refresh
-
CloudFront memberikan respons dari cache setelah mengirim permintaan ke asal untuk memverifikasi bahwa objek yang di-cache masih valid. Dalam hal ini, CloudFront tidak mengambil objek lengkap dari asal.
- cdn-cache-miss
-
CloudFront tidak memberikan tanggapan dari cache. Dalam hal ini, CloudFront meminta objek lengkap dari asal sebelum mengembalikan respons.
- cdn-pop
-
Berisi nilai yang menjelaskan CloudFront titik kehadiran (POP) mana yang menangani permintaan.
- cdn-rid
-
Berisi nilai dengan pengenal CloudFront unik untuk permintaan. Anda dapat menggunakan pengenal permintaan ini (RID) saat memecahkan masalah dengan Dukungan
- lapisan cdn-hit
-
Metrik ini hadir ketika CloudFront memberikan respons dari cache tanpa membuat permintaan ke asal. Ini berisi salah satu nilai berikut:
-
EDGE — CloudFront memberikan respons cache dari lokasi POP.
-
REC - CloudFront menyediakan respons cache dari lokasi cache tepi regional (REC).
-
Origin Shield — CloudFront memberikan respons cache dari REC yang bertindak sebagai Origin Shield.
-
- lapisan atas cdn
-
Saat CloudFront meminta objek lengkap dari asal, metrik ini hadir dan berisi salah satu nilai berikut:
-
EDGE — Lokasi POP mengirim permintaan langsung ke asal.
-
REC — Lokasi REC mengirim permintaan langsung ke asal.
-
Origin Shield — REC yang bertindak sebagai Origin Shield mengirim permintaan langsung ke asal.
-
- cdn-upstream-dns
-
Berisi nilai dengan jumlah milidetik yang dihabiskan untuk mengambil catatan DNS untuk asal. Nilai nol (0) menunjukkan bahwa CloudFront menggunakan hasil DNS yang di-cache atau menggunakan kembali koneksi yang ada.
- cdn-upstream-sambungkan
-
Berisi nilai dengan jumlah milidetik antara saat permintaan DNS asal selesai dan koneksi TCP (dan TLS, jika berlaku) ke asal selesai. Nilai nol (0) menunjukkan bahwa CloudFront menggunakan kembali koneksi yang ada.
- cdn-upstream-fbl
-
Berisi nilai dengan jumlah milidetik antara saat permintaan HTTP asal selesai dan ketika byte pertama diterima dalam respons dari asal (latensi byte pertama).
- cdn-downstream-fbl
-
Berisi nilai dengan jumlah milidetik antara saat lokasi tepi selesai menerima permintaan dan ketika mengirim byte pertama respons ke penampil.
Server-Timing contoh header
Berikut ini adalah contoh Server-Timing header yang mungkin diterima oleh penampil CloudFront ketika pengaturan Server-Timing header diaktifkan.
contoh— kehilangan cache
Contoh berikut menunjukkan Server-Timing header yang mungkin diterima oleh penampil ketika objek yang diminta tidak ada dalam CloudFront cache.
Server-Timing: cdn-upstream-layer;desc="EDGE",cdn-upstream-dns;dur=0,cdn-upstream-connect;dur=114,cdn-upstream-fbl;dur=177,cdn-cache-miss,cdn-pop;desc="PHX50-C2",cdn-rid;desc="yNPsyYn7skvTzwWkq3Wcc8Nj_foxUjQUe9H1ifslzWhb0w7aLbFvGg==",cdn-downstream-fbl;dur=436Server-TimingHeader ini menunjukkan hal berikut:
-
Permintaan asal dikirim dari lokasi CloudFront titik kehadiran (POP) (
cdn-upstream-layer;desc="EDGE"). -
CloudFront menggunakan hasil DNS yang di-cache untuk origin (
cdn-upstream-dns;dur=0). -
Butuh 114 milidetik CloudFront untuk menyelesaikan koneksi TCP (dan TLS, jika berlaku) ke origin ().
cdn-upstream-connect;dur=114 -
Butuh 177 milidetik CloudFront untuk menerima byte pertama respons dari asal, setelah menyelesaikan permintaan ().
cdn-upstream-fbl;dur=177 -
Objek yang diminta tidak ada di CloudFront cache (
cdn-cache-miss). -
Permintaan diterima di lokasi tepi yang diidentifikasi oleh kode
PHX50-C2(cdn-pop;desc="PHX50-C2"). -
ID CloudFront unik untuk permintaan ini adalah
yNPsyYn7skvTzwWkq3Wcc8Nj_foxUjQUe9H1ifslzWhb0w7aLbFvGg==(cdn-rid;desc="yNPsyYn7skvTzwWkq3Wcc8Nj_foxUjQUe9H1ifslzWhb0w7aLbFvGg=="). -
Butuh 436 milidetik CloudFront untuk mengirim byte pertama respons ke penampil, setelah menerima permintaan pemirsa ().
cdn-downstream-fbl;dur=436
contoh— Hit cache
Contoh berikut menunjukkan Server-Timing header yang mungkin diterima oleh penampil ketika objek yang diminta berada di CloudFront cache.
Server-Timing: cdn-cache-hit,cdn-pop;desc="SEA19-C1",cdn-rid;desc="nQBz4aJU2kP9iC3KHEq7vFxfMozu-VYBwGzkW9diOpeVc7xsrLKj-g==",cdn-hit-layer;desc="REC",cdn-downstream-fbl;dur=137Server-TimingHeader ini menunjukkan hal berikut:
-
Objek yang diminta ada di cache (
cdn-cache-hit). -
Permintaan diterima di lokasi tepi yang diidentifikasi oleh kode
SEA19-C1(cdn-pop;desc="SEA19-C1"). -
ID CloudFront unik untuk permintaan ini adalah
nQBz4aJU2kP9iC3KHEq7vFxfMozu-VYBwGzkW9diOpeVc7xsrLKj-g==(cdn-rid;desc="nQBz4aJU2kP9iC3KHEq7vFxfMozu-VYBwGzkW9diOpeVc7xsrLKj-g=="). -
Objek yang diminta di-cache di lokasi cache tepi regional (REC) (
cdn-hit-layer;desc="REC"). -
Butuh 137 milidetik CloudFront untuk mengirim byte pertama respons ke penampil, setelah menerima permintaan pemirsa ().
cdn-downstream-fbl;dur=137