Topik ini menjelaskan cara mengintegrasikan API JSON DoH di sisi klien.
Alur integrasi API JSON DoH
Bagan alir berikut menunjukkan proses resolusi nama domain di sisi klien:
Kebijakan desain
Mekanisme resolusi nama domain harus mengikuti kebijakan desain berikut:
Kebijakan fallback
Meskipun HTTPDNS telah terintegrasi dengan BGP Anycast dan menyediakan pemulihan bencana di beberapa wilayah dan pusat data, kami merekomendasikan penerapan kebijakan fallback berikut untuk memastikan resolusi nama domain di sisi klien tetap tidak terganggu dalam skenario terburuk:
1. Pertama, kirim kueri nama domain ke HTTPDNS.
2. Jika kueri HTTPDNS mengembalikan status code selain 200 atau terjadi timeout koneksi, gunakan DNS lokal untuk melakukan resolusi nama domain. Timeout yang direkomendasikan adalah 3 detik.
Kebijakan cache
Untuk meminimalkan jumlah permintaan resolusi nama domain, simpan hasilnya secara lokal dalam cache. Aturan cache-nya sebagai berikut:
1. Durasi cache: Tetapkan durasi cache antara 60 hingga 600 detik.
2. Pembaruan cache: Perbarui cache dalam dua situasi berikut:
Saat status jaringan pengguna berubah: Ketika klien beralih antara jaringan WWAN dan Wi-Fi, penyedia jaringan titik aksesnya mungkin berubah. Dalam kasus ini, Anda harus mengirim permintaan resolusi nama domain baru ke HTTPDNS untuk mendapatkan titik akhir optimal sesuai jaringan pengguna saat ini.
Saat cache kedaluwarsa: Ketika cache resolusi nama domain kedaluwarsa, klien harus mengirim permintaan resolusi nama domain baru ke HTTPDNS untuk mendapatkan alamat IP terbaru dari nama domain tersebut. Untuk memastikan pengguna dapat segera mengambil alamat IP terbaru setelah cache kedaluwarsa, kami merekomendasikan penggunaan pengatur waktu untuk memperbarui entri cache yang kedaluwarsa setiap menit.
Kebijakan optimasi IP
Setelah Anda mengirim kueri nama domain ke HTTPDNS dan memperoleh hasil resolusi, Anda dapat melakukan optimasi IP. Proses ini melibatkan penyimpanan hasil dalam cache, pengujian kecepatan setiap alamat IP secara asinkron menggunakan metode socket atau ping, pengurutan alamat IP berdasarkan kecepatan, lalu memperbarui cache dengan hasil yang telah diurutkan.
Catatan
Jangan menetapkan nilai TTL cache terlalu rendah (minimum 60 detik) karena permintaan HTTPDNS yang terlalu sering dapat meningkatkan biaya Anda.
Layanan yang menggunakan HTTPDNS harus tetap mempertahankan DNS lokal pengguna sebagai saluran pemulihan bencana. Jika HTTPDNS tidak tersedia (karena jaringan tidak stabil atau masalah pada layanan HTTPDNS), Anda dapat menggunakan DNS lokal sebagai mekanisme fallback.
Gunakan nama domain yang sama untuk fitur-fitur berbeda sebisa mungkin. Bedakan sumber daya melalui URL. Hal ini mengurangi jumlah permintaan resolusi nama domain dan menekan biaya Anda.
Timeout yang direkomendasikan untuk permintaan HTTPDNS adalah antara 2 hingga 5 detik.