Header respons keluar dari titik kehadiran (POP) Edge Security Acceleration (ESA) merupakan bagian dari header pesan respons HTTP yang membawa parameter respons tertentu dan meneruskannya ke klien. Anda dapat mengonfigurasi header respons keluar POP ESA untuk mengontrol header respons saat resource dikembalikan. ESA memungkinkan Anda menambahkan, memodifikasi, dan menghapus aturan header respons keluar guna memenuhi berbagai kebutuhan bisnis.
Ikhtisar
Ketika klien meminta sebuah resource, permintaan tersebut pertama kali mencapai ESA. Jika resource tidak ditemukan dalam cache POP ESA, ESA akan mengirimkan origin request ke server origin untuk mengambil data tersebut. Setelah server origin mengembalikan data, POP ESA memodifikasi respons asli berdasarkan aturan header respons yang telah Anda konfigurasi—misalnya, dengan menambahkan, mengganti, atau menghapus bidang tertentu. Terakhir, ESA mengembalikan resource lengkap, termasuk header respons yang telah dimodifikasi, kepada klien. Hal ini membantu Anda menerapkan kontrol akses lintas domain, optimasi kebijakan cache, serta persyaratan bisnis lainnya.
Use cases
Beritahu klien tentang tipe file resource respons ESA: Misalnya, Anda dapat menambahkan header respons
Content-Type: text/html. Ini memberi tahu klien bahwa file respons ESA berformat HTML sehingga dapat dirender dengan benar.Aktifkan akses resource lintas origin: Saat pengguna meminta resource dari nama domain di ESA, Anda dapat mengonfigurasi header respons
Access-Control-Allow-Origindalam pesan respons dari ESA. Ini mengaktifkan akses lintas origin. Untuk informasi selengkapnya, lihat Configure cross-origin resource sharing.Sesuaikan perilaku respons: Anda dapat menambahkan atau memodifikasi header kustom untuk menyesuaikan konten dan format respons yang diterima klien. Hal ini memungkinkan Anda menerapkan fitur tertentu atau menggunakannya untuk tujuan pelacakan.
Catatan
Jika Anda menambahkan beberapa aturan, aturan tersebut dieksekusi secara berurutan dari atas ke bawah dalam daftar aturan. Aturan akan ditimpa oleh aturan berikutnya yang memiliki nama header respons yang sama, yang dapat menyebabkan hasil yang tidak terduga.
Contoh 1
Pesan respons berisi header respons
test:123.Sebuah aturan ditambahkan untuk mengatur header respons
test:321.
Jika pesan respons memenuhi aturan tersebut, header respons asli test:123 akan ditimpa dengan test:321.
Contoh 2
Pesan respons berisi header respons
test:123.Sebuah aturan ditambahkan untuk mengatur header respons
test:321. Kemudian, aturan lain dikonfigurasi untuk menghapus header responstest.
Jika pesan respons memenuhi aturan tersebut, header respons asli test:123 akan dihapus.
Prosedur
Setelah Anda menambahkan aturan, ketika pengguna meminta resource, ESA mencocokkan dan mengeksekusi aturan secara berurutan berdasarkan rule execution priority.
Di Konsol ESA, pilih Websites. Di kolom Website, klik situs target.
Di panel navigasi sebelah kiri, pilih .
Pilih tab Modify Response Header, klik bagian ESA to Client, lalu klik Create Rule.

Klik Create Rule. Di bagian If requests match..., atur fitur permintaan pengguna yang akan dicocokkan. Untuk informasi lebih lanjut tentang cara mengonfigurasi aturan, lihat Components of a rule expression.
Di bagian Modify Response Header, pilih Operation, masukkan Response Header Name dan Response Header Value, lalu klik OK.
Prosedur
Tipe
Deskripsi
Contoh
Add
Static
Menambahkan header respons yang ditentukan ke respons yang dikirim ke client.
Jika header respons sudah berisi header dengan nama yang sama, header baru akan menimpa yang sudah ada.
Untuk menambahkan header respons dengan nama
x-codedan nilaikey1, tentukan hal berikut:Response Header Name:
x-codeResponse Header Value:
key1
Dynamic
Nilai header respons dapat diatur ke expression.
Untuk menambahkan header respons bernama
Client-Ip-Geo-Locationdengan nilaiip.geoip.countryguna mencatat negara atau wilayah alamat IP client, tentukan hal berikut:Response Header Name:
Client-Ip-Geo-LocationResponse Header Value:
ip.geoip.country
Change
Static
Mengubah nilai header respons yang ditentukan dalam respons yang dikirim ke client.
Untuk memodifikasi header respons bernama
x-codemenjadi nilaikey2, tentukan hal berikut:Response Header Name:
x-codeResponse Header Value:
key2
Dynamic
Nilai header respons dapat diatur ke expression.
Untuk memodifikasi header respons bernama
Client-Ip-Geo-Locationmenjadi nilaiip.geoip.country, mengubah nilai header menjadi negara atau wilayah alamat IP client, tentukan hal berikut:Response Header Name:
Client-Ip-Geo-LocationResponse Header Value:
ip.geoip.country
Delete
Menghapus semua nilai parameter yang sesuai dengan Response Header Name dari respons yang dikirim ke client, terlepas dari apakah terdapat parameter header respons duplikat.
Untuk menghapus header respons bernama
x-code, tentukan Response Header Name:x-code.CatatanJangan mengatur Response Header Name yang diawali dengan
ali-inneratauali-swift.Anda dapat mengonfigurasi beberapa nilai di bidang Response Header Value. Pisahkan dengan koma (
,).Operasi delete berlaku untuk skema static maupun dynamic.
Operasi modify mengubah header respons yang sudah ada dan hanya berlaku jika header respons dengan nama yang ditentukan sudah ada dalam respons asli.
Contoh konfigurasi
Jika Anda menggunakan OSS sebagai server origin dan mengonfigurasi CORS di konsol OSS dan ESA, konfigurasi ESA akan menimpa CORS settings OSS.
Berlaku untuk semua permintaan
Use case
Use case ini memungkinkan semua permintaan dari situs saat ini, seperti example.com, mengakses resource dari origin lainnya.
Langkah-langkah
Di Konsol ESA, pilih Websites. Di kolom Website, klik situs target.
Di panel navigasi sebelah kiri, pilih . Di halaman Transform Rules, klik tab Modify Response Header. Atur Response Header Position ke ESA to Client, lalu klik tombol Create Rule.

Di halaman Create Response Header Modification Rule, konfigurasi parameter sebagai berikut:
Rule Name: Masukkan nama aturan kustom, misalnya
rule-cors-for-all.If requests match...: Atur kondisi aturan untuk memfilter permintaan klien. Untuk contoh ini, pilih All Requests.
Then execute...: Atur aksi untuk memodifikasi header respons. Untuk contoh ini, konfigurasikan parameter berikut:
Type: Pilih Static.
Operation: Pilih Add.
Response Header Name: Masukkan
Access-Control-Allow-Origin.Response Header Value: Masukkan
*.

Hasil
Untuk setiap permintaan lintas origin, ESA menambahkan header Access-Control-Allow-Origin: * ke respons. Browser kemudian dapat memproses respons dan menampilkan resource lintas origin tersebut.

Berlaku untuk permintaan tertentu
Use case
Use case ini berlaku ketika nilai header origin dalam permintaan klien merupakan subdomain dari example.com. Use case ini mendukung protokol HTTP dan HTTPS. Sebagai contoh, akses lintas origin diizinkan untuk origin berikut:
origin:http://www.example.comorigin:https://www.example.comorigin:http://image.example.comorigin:https://image.example.com
Tambahkan header CORS ke respons. Nilai header respons CORS harus sama dengan nilai header origin dalam permintaan.
Langkah-langkah konfigurasi
Di Konsol ESA, pilih Websites. Di kolom Website, klik situs target.
Di panel navigasi sebelah kiri, pilih . Di halaman Transform Rules, klik tab Modify Response Header. Atur Response Header Position ke ESA to Client, lalu klik tombol Create Rule.

Di halaman Create Response Header Modification Rule, konfigurasi parameter sebagai berikut:
Rule Name: Masukkan nama aturan kustom, misalnya
rule-cors-origin.If requests match...: Atur kondisi aturan untuk memfilter permintaan klien. Hal ini memastikan bahwa aksi hanya dieksekusi untuk permintaan yang memenuhi kriteria tertentu. Untuk contoh ini, atur kondisi menjadi
Header Value of origin matches regex ^https?://(?:[a-zA-Z0-9](?:[a-zA-Z0-9\-]*[a-zA-Z0-9])?\.)+example\.com$.Anda juga dapat langsung mengedit ekspresi sebagai berikut:
(http.request.headers["origin"] matches "^https?://(?:[a-zA-Z0-9](?:[a-zA-Z0-9\-]*[a-zA-Z0-9])?\.)+example\.com$")CatatanJika paket Anda tidak mendukung pencocokan dengan ekspresi reguler, gunakan operator
is indan cantumkan daftar nilai header origin yang diizinkan.Anda juga dapat langsung mengedit ekspresi sebagai berikut:
(http.request.headers["origin"] in {"http://www.example.com" "https://www.example.com" "http://image.example.com" "https://image.example.com"})
Then execute...: Atur aksi untuk memodifikasi header respons. Untuk contoh ini, konfigurasi parameter berikut:
Type: Pilih Dynamic.
Operation: Pilih Add.
Response Header Name: Masukkan
Access-Control-Allow-Origin.Response Header Value: Masukkan
http.request.headers["origin"].

Hasil
Ketika permintaan lintas origin dilakukan, jika header origin dalam permintaan sesuai dengan aturan, ESA menambahkan header Access-Control-Allow-Origin ke respons. Nilai header ini sama dengan nilai header Origin dari permintaan klien. Browser kemudian dapat memproses respons dan menampilkan resource lintas origin tersebut.

Deskripsi parameter header respons
Parameter header respons | Deskripsi | Contoh |
Custom | Anda dapat menambahkan header respons kustom. Nama header respons kustom harus memenuhi persyaratan berikut:
| Test-Header |
Cache-Control | Menentukan mekanisme caching yang harus diikuti oleh permintaan dan respons program client. | no-cache |
Content-Disposition | Menentukan nama file default saat program client menyimpan konten yang diminta sebagai file. | examplefile.txt |
Content-Type | Menentukan tipe konten objek respons untuk program client. | text/plain |
Pragma | Pragma adalah header umum yang didefinisikan dalam HTTP/1.0. Header ini biasanya digunakan dalam respons server untuk menentukan perilaku caching client terhadap file. | no-cache |
Access-Control-Allow-Origin | Menentukan origin mana yang dapat mengakses resource. Ini merupakan bagian dari mekanisme Berbagi Sumber Daya Lintas Asal (
|
|
Access-Control-Allow-Methods | Menentukan metode yang diizinkan untuk permintaan lintas origin. Pisahkan beberapa metode dengan koma ( | POST,GET |
Access-Control-Allow-Headers | Menentukan bidang yang diizinkan untuk permintaan lintas origin. | X-Custom-Header |
Access-Control-Expose-Headers | Menentukan header kustom yang dapat diakses. | Content-Length |
Access-Control-Allow-Credentials | Header respons ini menunjukkan apakah respons terhadap permintaan dapat diekspos ke halaman.
| true |
Access-Control-Max-Age | Menentukan durasi cache untuk hasil permintaan preflight resource tertentu untuk program client, dalam satuan detik. | 600 |
Referensi
Fitur terkait aturan memiliki variasi dalam execution priority, rule behavior, dan configuration scope. Untuk informasi selengkapnya, lihat How ESA rules take effect.