Menerapkan fitur mengikuti pengalihan 302 dengan Fungsi Edge membantu mengurangi waktu interaksi, meningkatkan kecepatan akses, dan memperbaiki pengalaman pengguna.
Kapan harus menggunakannya
Jika bisnis Anda memiliki beban tinggi dan perlu mengelola respons pengalihan dari server asli, gunakan fitur mengikuti pengalihan 302. Fitur ini memungkinkan ESA untuk secara otomatis mengikuti pengalihan 302 demi mendapatkan sumber daya akhir.
Contoh kode
Efek yang Diharapkan: Saat klien mengirim permintaan dan server asal mengembalikan kode status 302, ESA point of presence (POP) secara otomatis mengikuti pengalihan dan memberikan hasilnya kepada klien.
Bahasa:
JavascriptContoh:
/** * fetch adalah rutin khusus untuk menangani permintaan dari klien. * Ketika kode status yang dikembalikan dari asal adalah 302 (pengalihan sementara), * ESA POP mengikuti pengalihan dan mengembalikan hasil permintaan yang dialihkan ke klien. * Contoh URL permintaan klien: https://example.com/redirect * Contoh URL target pengalihan: https://example.com/target */ export default { async fetch(request) { // Mengirim permintaan ke Fungsi Edge dan menangani pengalihan secara manual. // Menggunakan opsi { redirect: "manual" } untuk memastikan bahwa pengalihan tidak diikuti secara otomatis, // sehingga respons dengan kode status 302 dapat ditangani oleh Fungsi Edge. const response = await fetch(request, { redirect: "manual" }); // Mendapatkan kode status dari respons. const status = response.status; // Jika kode status respons adalah 302 (pengalihan sementara), if (status === 302) { // mendapatkan alamat target pengalihan dari header respons. const redirectLocation = response.headers.get("Location"); // Mengirim permintaan baru ke alamat target pengalihan. const res = await fetch(redirectLocation); // Mengembalikan hasil permintaan yang dialihkan ke klien. return res; } // Jika kode status respons bukan 302, kembalikan respons dari Fungsi Edge. return response; }, };
Efek penyebaran
Saat Kode Status Respons adalah 302:
POP mengambil
https://example.com/targetdari headerLocationdalam respons, lalu mengirim permintaan baru ke URL tersebut dan mengembalikan respons ke klien. Klien menerima respons darihttps://example.com/targettanpa mengetahui terjadinya pengalihan.URL yang diminta klien: https://example.com/redirect //URL asli yang diminta klien adalah https://example.com/redirect. Mengalihkan dari https://example.com/redirect ke https://example.com/target //Server asal mengembalikan kode status 302, memerlukan pengalihan ke https://example.com/target.Saat Kode Status Respons Bukan 302:
Klien langsung menerima konten respons dari Fungsi Edge.
URL yang diminta klien: https://example.com/redirect //URL asli yang diminta klien adalah https://example.com/redirect.