全部产品
Search
文档中心

Edge Security Acceleration:Mengikuti pengalihan 302

更新时间:Jun 21, 2025

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: Javascript

  • Contoh:

    /**
     * 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/target dari header Location dalam respons, lalu mengirim permintaan baru ke URL tersebut dan mengembalikan respons ke klien. Klien menerima respons dari https://example.com/target tanpa 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.