All Products
Search
Document Center

HTTPDNS:Integrasikan DoH dengan Qt WebEngine

Last Updated:Mar 17, 2026

Topik ini menyediakan potongan kode utama dan detail konfigurasi untuk menggunakan DNS over HTTPS (DoH) dalam aplikasi Qt WebEngine.

1. Pendahuluan

Mulai versi 6.6, Qt WebEngine mendukung DNS over HTTPS (DoH). Fitur ini memungkinkan pengembang melakukan resolusi DNS melalui protokol HTTPS terenkripsi guna mencegah pembajakan DNS pada aplikasi web. HTTPDNS adalah layanan Alibaba Cloud yang dirancang untuk aplikasi seluler dan perangkat Internet of Things (IoT), menyediakan resolusi rekursif publik yang stabil, aman, dan akurat. Topik ini menjelaskan cara mengintegrasikan layanan DoH HTTPDNS ke dalam aplikasi Qt WebEngine.

2. Prasyarat

Sebelum mengintegrasikan DoH dengan Qt WebEngine, pastikan Anda telah mengonfigurasi layanan DoH.

3. Konfigurasi

Integrasi dengan layanan DoH HTTPDNS dikonfigurasi terutama melalui API QWebEngineGlobalSettings::DnsMode.

Konfigurasi mencakup dua bagian:

  • Safe mode (secureMode): Menentukan prioritas penggunaan antara DoH dan DNS lokal serta mengontrol kebijakan resolusi DNS dan mekanisme backoff di berbagai lingkungan jaringan.

  • Server templates (serverTemplates): Menentukan daftar layanan DNS over HTTPS (DoH), mendefinisikan titik akhir server DoH yang tersedia, serta mendukung beberapa server untuk menyediakan Ketersediaan tinggi.

Kode berikut merupakan contoh:

// Konfigurasi DoH
QWebEngineGlobalSettings::DnsMode dnsMode;
dnsMode.secureMode = QWebEngineGlobalSettings::SecureDnsMode::SecureWithFallback;
dnsMode.serverTemplates = QStringList{
 "https://xxxx.com/dns-query{?dns}"
};
QWebEngineGlobalSettings::setDnsMode(dnsMode);
// Setelah mengonfigurasi DoH, buat WebEngineView dan muat halaman web
QWebEngineView *webView = new QWebEngineView();
webView->load(QUrl("https://www.example.com"));
webView->show();

4. Catatan konfigurasi

  • Format templat integrasi DoH: Templat harus menyertakan parameter {?dns}.

    • Contoh yang benar: "https://xxxx.aliyunhttpdns.com/dns-query{?dns}"

    • Contoh yang salah: "https://dns.xxxx/dns-query" (Parameter {?dns} tidak ada.)

    • Contoh yang salah: "https://1.1.X.X/dns-query?dns=" (Format parameter salah.)

  • Konfigurasi DoH bersifat global

    • Anda dapat mengaturnya melalui QWebEngineGlobalSettings.

    • Konfigurasi harus diselesaikan sebelum membuat instans QWebEngineView apa pun.

    • Setelah dikonfigurasi, semua instans WebEngineView berikutnya secara otomatis menggunakan pengaturan DoH tersebut.

  • Konfigurasi Ketersediaan tinggi

    • Disarankan menggunakan pola SecureWithFallback untuk mencegah dampak pada bisnis jika DoH tidak tersedia dalam skenario ekstrem.

    • Konfigurasikan beberapa server DoH sebagai solusi fallback. Gunakan HTTPDNS sebagai layanan DoH utama dan layanan DoH cadangan lainnya, seperti layanan DoH publik gratis, untuk disaster recovery.

5. Ringkasan

Topik ini menjelaskan cara mengintegrasikan DNS over HTTPS (DoH) dalam aplikasi Qt WebEngine, termasuk konfigurasi dasar, pemilihan safe mode, dan strategi penerapan Ketersediaan tinggi. Setelah konfigurasi, verifikasi integrasi DoH dengan menangkap paket untuk melihat Permintaan HTTPS, memeriksa log DNS, atau melakukan pengujian gangguan jaringan. Untuk memastikan stabilitas di lingkungan produksi, gunakan mode SecureWithFallback dan konfigurasikan beberapa server DoH.