Anda dapat menggunakan header respons HTTP kustom untuk berbagi atau mengakses resource di berbagai domain. Topik ini menjelaskan cara mengaktifkan berbagi sumber daya lintas asal untuk resource ApsaraVideo VOD.
Apa itu berbagi sumber daya lintas asal
Berbagi sumber daya lintas asal (Cross-Origin Resource Sharing/CORS) adalah solusi standar HTML5 yang memungkinkan halaman web memuat dan mengakses resource dari origin yang berbeda. Mekanisme ini memungkinkan transmisi data lintas asal secara aman. Untuk informasi selengkapnya, lihat Cross-Origin Resource Sharing.
Mengapa mengonfigurasi berbagi sumber daya lintas asal
Demi alasan keamanan, browser menerapkan kebijakan asal sama (same-origin policy). Kebijakan ini membatasi permintaan untuk memuat dan mengakses resource dari domain, subdomain, protokol, atau port yang berbeda. Misalnya, example.com tidak dapat mengakses resource di example.org. Dengan mengonfigurasi CORS, Anda dapat menetapkan header respons pada server CDN. Jika suatu permintaan mencakup header permintaan yang sesuai dengan aturan yang diizinkan, server akan mengembalikan header respons HTTP yang sesuai, sehingga memungkinkan resource lintas asal dimuat dan diakses.
Diagram Interaksi Data
CORS dinonaktifkan
CORS diaktifkan
Aktifkan berbagi sumber daya lintas asal
Masuk ke ApsaraVideo VOD console.
Pada panel navigasi sebelah kiri, pilih Configuration Management > CDN Configuration > Domain Names.
Pada halaman Domain Names, temukan nama domain yang ingin Anda kelola, lalu klik Configure.
Pada panel navigasi sebelah kiri untuk nama domain tersebut, klik Cache.
Klik tab Custom HTTP Response Header.
Klik Add untuk mengonfigurasi header respons HTTP kustom.
Konfigurasikan parameter seperti dijelaskan dalam tabel berikut untuk menentukan origin yang diizinkan dalam permintaan lintas asal, lalu klik OK untuk menyimpan konfigurasi.

Parameter
Contoh
Operation
Add
Response Header
Access-Control-Allow-Origin
Header Value
*
CatatanAnda dapat menetapkan nilai header respons ke `*` untuk mengizinkan semua origin.
Jika nilai header respons bukan `*`, Anda dapat menentukan satu atau beberapa alamat IP, nama domain, atau kombinasi keduanya. Pisahkan dengan koma (,).
Jika nilai header respons bukan `*`, nilai tersebut harus mencakup protokol `http://` atau `https://`.
Nilai header respons dapat mencakup nomor port.
Nilai header respons mendukung nama domain wildcard.
Allow Duplicates
No
CatatanYes: Mengizinkan duplikat. Header dari server origin dipertahankan, dan header lain dengan nama yang sama ditambahkan.
No: Tidak mengizinkan duplikat. Header dari server origin ditimpa oleh header baru dengan nama yang sama.
Topik ini memberikan contoh pencegahan duplikat. Konfigurasi spesifik tergantung pada lingkungan aktual Anda.
PentingPengaturan Allow Duplicates dan CORS Validation saling eksklusif. Jika Anda menetapkan Allow Duplicates ke Yes, validasi CORS menjadi tidak berlaku.
CORS
Enabled
CatatanAnda hanya dapat mengonfigurasi CORS Validation ketika Response Header Operation diatur ke Add dan Custom Response Header Parameter diatur ke `Access-Control-Allow-Origin`.
CORS Validation dapat diatur ke Disabled atau Enabled. Nilai default-nya adalah Disabled.
Disabled: POP CDN tidak memvalidasi header Origin dalam permintaan pengguna. POP hanya mengembalikan nilai `Access-Control-Allow-Origin` yang dikonfigurasi.
Enabled: POP CDN memvalidasi permintaan lintas asal berdasarkan aturan berikut dan mengembalikan nilai `Access-Control-Allow-Origin` berdasarkan hasil validasi. Aturan validasi sebagai berikut:
Pencocokan wildcard: Jika nilai Custom Response Header Parameter `Access-Control-Allow-Origin` diatur ke `*`, POP selalu mengembalikan `Access-Control-Allow-Origin:*`, terlepas dari apakah permintaan pengguna berisi parameter `Origin` atau berapa pun nilainya.
Pencocokan eksak: Nilai Custom Response Header Parameter `Access-Control-Allow-Origin` diatur ke satu atau beberapa nilai yang dipisahkan koma (,).
Jika nilai parameter `Origin` dalam permintaan pengguna persis sesuai dengan salah satu nilai yang dikonfigurasi, header lintas domain yang sesuai dikembalikan.
Jika tidak ditemukan kecocokan eksak, header lintas domain tidak dikembalikan.
Pencocokan domain wildcard: Jika nilai Custom Response Header Parameter `Access-Control-Allow-Origin` diatur ke nama domain wildcard, POP memeriksa apakah nilai `Origin` dalam header permintaan cocok dengan nama domain wildcard tersebut.
Saat CORS Validation diatur ke Enabled, jika nama domain dalam Response Header Value mengandung tanda hubung (
-), Anda harus melakukan escape terhadap tanda hubung tersebut sebelum mengonfigurasinya. Escape tanda hubung (-) menjadi%-. Contohnya:Nilai header respons asli:
http://doc.aliyun-example.com.Nilai header respons setelah escape:
http://doc.aliyun%-example.com.
Konfigurasikan parameter seperti dijelaskan dalam tabel berikut untuk menentukan metode permintaan lintas asal yang diizinkan, lalu klik OK untuk menyimpan konfigurasi.

Parameter
Contoh
Operation
Add
Response Header
Access-Control-Allow-Methods
Header Value
GET, POST, PUT
CatatanUntuk menambahkan GET, POST, dan PUT sekaligus, pisahkan dengan koma (,).
Allow Duplicates
No
CatatanAllow: Mempertahankan header dari server origin dan menambahkan header baru dengan nama yang sama.
No: Tidak mengizinkan duplikat. Header dari server origin ditimpa oleh header baru dengan nama yang sama.
Topik ini memberikan contoh cara mencegah duplikat. Konfigurasi aktual tergantung pada lingkungan spesifik Anda.
Contoh konfigurasi
Contoh 1
Anda dapat menetapkan header respons CORS ke satu atau beberapa nilai yang dipisahkan koma (,).
Jika nilai header `Origin` dalam permintaan persis sesuai dengan salah satu nilai yang dikonfigurasi, header lintas domain yang sesuai dikembalikan.
Jika tidak ditemukan kecocokan eksak, header lintas domain tidak dikembalikan.
Sebagai contoh, di ApsaraVideo VOD console, Anda menetapkan Access-Control-Allow-Origin ke `http://example.com,https://aliyundoc.com`.
Jika permintaan pengguna mencakup header
Origin: http://example.com, POP CDN mengembalikanAccess-Control-Allow-Origin: http://example.com.Jika permintaan pengguna mencakup header
Origin: https://aliyundoc.com, POP CDN mengembalikanAccess-Control-Allow-Origin: https://aliyundoc.com.Jika permintaan pengguna mencakup header
Origin: http://aliyundoc.com, POP CDN tidak mengembalikan header `Access-Control-Allow-Origin` karena protokol tidak cocok—permintaan pengguna menggunakan HTTP, sedangkan konfigurasi pada CDN menggunakan HTTPS.Jika permintaan pengguna mencakup header
Origin: http://aliyun.com, POP CDN tidak mengembalikan header `Access-Control-Allow-Origin` karena domain tidak cocok.
Contoh 2
Jika Anda menetapkan header respons CORS ke nama domain wildcard, sistem akan memeriksa apakah nilai Origin dalam header permintaan cocok dengan pola wildcard yang ditentukan untuk Access-Control-Allow-Origin.
Sebagai contoh, di ApsaraVideo VOD console, Anda menetapkan Access-Control-Allow-Origin ke `http://*.aliyundoc.com`.
Jika permintaan pengguna mencakup header
Origin: http://demo.aliyundoc.com, POP CDN mengembalikanAccess-Control-Allow-Origin: http://demo.aliyundoc.com.Jika permintaan pengguna mencakup header
Origin: http://demo.example.com, POP CDN tidak mengembalikan header `Access-Control-Allow-Origin` karena domain tidak cocok.Jika permintaan pengguna mencakup header
Origin: https://demo.aliyundoc.com, POP CDN tidak mengembalikan header `Access-Control-Allow-Origin` karena protokol tidak cocok—permintaan pengguna menggunakan HTTPS, sedangkan konfigurasi pada CDN menggunakan HTTP.