All Products
Search
Document Center

HTTPDNS:Operasi konfigurasi dasar

Last Updated:Jul 02, 2025

Topik ini menjelaskan operasi konfigurasi dasar dari HTTPDNS SDK untuk iOS.

Inisialisasi

Gunakan operasi ini untuk membuat instance layanan HTTPDNS global. Instance ini menggunakan pola desain singleton dan tetap ada sepanjang siklus hidup aplikasi. Anda tidak perlu membuat instance ini berulang kali. Setelah dibuat pertama kali, panggil operasi [HttpDnsService sharedInstance] untuk mendapatkan instance layanan selama siklus hidup aplikasi.

Operasi ini tersedia dalam dua versi: satu untuk skenario tanpa enkripsi dan satu untuk skenario dengan enkripsi. Jika enkripsi diaktifkan, SDK menggunakan Algoritma Standar Enkripsi Lanjutan (AES) untuk mengenkripsi parameter permintaan dan hasil respons saat mengirimkan permintaan ke server. Meskipun enkripsi meningkatkan keamanan, logika penagihan berbeda. Untuk informasi lebih lanjut tentang penagihan, lihat Product billing.

Pastikan Anda memanggil operasi ini untuk menyelesaikan inisialisasi sebelum menggunakan operasi resolusi HTTPDNS. Jika tidak, resolusi akan gagal. Kami merekomendasikan untuk menyelesaikan inisialisasi di applicationDidFinishLaunching.

Definisi Operasi

- (nonnull instancetype)initWithAccountID:(NSInteger)accountID secretKey:(NSString * _Nonnull)secretKey;

- (nonnull instancetype)initWithAccountID:(NSInteger)accountID secretKey:(NSString * _Nonnull)secretKey aesSecretKey:(NSString * _Nullable)aesSecretKey;

Kelas

HttpDnsService

Parameter

Parameter

Tipe

Diperlukan

Deskripsi

accountId

int

Ya

ID akun yang ditetapkan oleh sistem. Setelah Anda mengaktifkan HTTPDNS, Anda dapat memperoleh ID akun Alibaba Cloud di konsol.

secretKey

NSString

Ya

Kunci rahasia untuk otentikasi. Anda dapat memperoleh kunci rahasia di konsol HTTPDNS.

aesSecretKey

NSString

Tidak

Kunci rahasia AES untuk enkripsi. Anda dapat memperoleh kunci rahasia AES di konsol HTTPDNS. Jika Anda mengatur parameter ini, SDK mengaktifkan fitur enkripsi.

Memperoleh instance layanan

Setelah membuat instance layanan HTTPDNS global, Anda dapat memperoleh singleton global dengan memanggil operasi ini ketika perlu mengonfigurasi atau menggunakan HTTPDNS untuk menyelesaikan nama domain.

Definisi Operasi

+ (instancetype)sharedInstance;

Kelas

HttpDnsService

Menggunakan Permintaan HTTPS

Gunakan operasi ini untuk menentukan apakah SDK menggunakan HTTPS saat mengirimkan permintaan resolusi ke server. Secara default, HTTP digunakan jika operasi ini tidak dipanggil.

Permintaan HTTPS memberikan keamanan yang lebih tinggi, namun perhatikan perbedaan penagihan antara HTTP dan HTTPS. Untuk informasi lebih lanjut tentang penagihan, lihat Product billing.

Catatan
  • Permintaan HTTP diproses melalui kerangka kerja CFNetwork tingkat rendah dan tidak terpengaruh oleh sistem pelacakan pelamar (ATS).

  • Apakah enkripsi diperlukan saat menggunakan permintaan HTTPS: Keduanya bekerja pada lapisan yang berbeda. Protokol HTTPS memastikan keamanan lapisan transport, sedangkan enkripsi AES memastikan keamanan lapisan bisnis HTTPDNS. Aktifkan kedua fitur sesuai kebutuhan Anda.

Definisi Operasi

- (void)setHTTPSRequestEnabled:(BOOL)enable;

Kelas

HttpDnsService

Parameter

Parameter

Tipe

Diperlukan

Deskripsi

enable

BOOL

Ya

Nilai valid:

YES: menggunakan HTTPS

NO: menggunakan HTTP

Mengizinkan alamat IP yang kedaluwarsa

HTTPDNS SDK untuk iOS mengikuti protokol DNS dan menyimpan hasil resolusi nama domain berdasarkan TTL (Time to Live) untuk meningkatkan efisiensi memperoleh alamat IP saat aplikasi memulai permintaan jaringan. Saat cache kedaluwarsa, situasi berikut mungkin terjadi:

  1. Jika aplikasi memanggil operasi sinkron non-blocking dan cache telah kedaluwarsa, tetapi SDK tidak dapat segera memperoleh hasil resolusi baru dari server, operasi mengembalikan hasil kosong. Pemanggil harus menangani fallback ke resolusi DNS lokal.

  2. Jika aplikasi memanggil operasi sinkron atau asinkron, SDK memulai permintaan resolusi untuk memperoleh hasil baru. Proses ini memerlukan waktu. Operasi sinkron memblokir thread hingga hasil baru diperoleh, sementara operasi asinkron memanggil balik completionHandler setelah hasil baru diperoleh.

SDK menyediakan opsi pengaturan untuk mengizinkan penggunaan kembali alamat IP yang kedaluwarsa. Jika Anda mengatur opsi ini ke YES, dalam dua situasi sebelumnya, meskipun alamat IP yang disimpan dalam cache telah kedaluwarsa, operasi dapat langsung mengembalikan alamat IP tersebut untuk mengurangi waktu pemrosesan fase DNS dan meningkatkan kinerja permintaan jaringan. Pada saat yang sama, setelah SDK mendeteksi bahwa alamat IP telah kedaluwarsa dan mengembalikannya, SDK segera memulai thread asinkron untuk menyelesaikan nama domain guna memperoleh hasil resolusi baru.

Oleh karena itu, efek samping mengaktifkan opsi ini sangat minimal, terutama jika konfigurasi resolusi nama domain yang perlu diselesaikan jarang berubah (misalnya, nama domain situs utama atau nama domain gateway statis). Jika resolusi nama domain berubah, mengaktifkan opsi ini hanya memengaruhi permintaan pertama setelah cache nama domain kedaluwarsa. Hal ini disebabkan ketika SDK dipanggil dan mendeteksi bahwa alamat IP telah kedaluwarsa, SDK langsung memulai pembaruan resolusi untuk nama domain tersebut.

Secara default, alamat IP yang kedaluwarsa tidak dapat dikembalikan.

Catatan
  • Jika alamat IP server bisnis Anda sering berubah, aktifkan fitur ini dengan hati-hati untuk menghindari dampak negatif pada bisnis Anda.

  • Dalam versi 2.x.x dan sebelumnya, operasi ini didefinisikan sebagai - (void)setExpiredIPEnabled:(BOOL)enable.

Definisi Operasi

- (void)setReuseExpiredIPEnabled:(BOOL)enable;

Kelas

HttpDnsService

Parameter

Parameter

Tipe

Diperlukan

Deskripsi

enable

BOOL

Ya

Menentukan apakah operasi resolusi dapat mengembalikan hasil resolusi yang disimpan dalam cache dengan TTL yang kedaluwarsa.

YES: mengizinkan alamat IP yang kedaluwarsa dikembalikan

NO: tidak mengizinkan alamat IP yang kedaluwarsa dikembalikan

Aktifkan cache persisten

Fitur cache persisten dioptimalkan untuk mengurangi waktu resolusi nama domain setelah startup, sehingga meningkatkan kecepatan pemuatan layar pertama.

Jika diaktifkan, HTTPDNS menyimpan hasil resolusi terbaru ke lapisan persisten lokal. Setelah aplikasi dimulai ulang, resolusi pertama untuk setiap nama domain akan memprioritaskan hasil yang disimpan dalam cache untuk mencapai efisiensi maksimal. Namun, pendekatan ini dapat mengakibatkan alamat IP awal menjadi kedaluwarsa karena TTL cache mungkin telah habis. Dalam kebanyakan kasus, alamat IP ini masih tersedia, terutama untuk nama domain dengan catatan resolusi stabil.

Untuk menghindari penggunaan hasil cache yang kedaluwarsa terlalu lama setelah startup (misalnya, jika aplikasi terakhir kali dimulai sebulan lalu), operasi ini menyediakan parameter discardRecordsHasExpiredFor:(NSTimeInterval)duration mulai versi 3.1.2. Parameter ini menentukan apakah akan membuang hasil resolusi yang telah kedaluwarsa lebih dari duration ketika aplikasi memuat cache dari lapisan persisten ke memori setelah startup. Kami merekomendasikan untuk mengatur parameter ini ke 1 hari.

Saklar ini dimatikan secara default.

Catatan
  • Jika alamat IP server bisnis Anda sering berubah, aktifkan fitur ini dengan hati-hati untuk menghindari dampak negatif pada bisnis Anda.

  • Cache persisten hanya memengaruhi hasil resolusi nama domain pertama. Permintaan resolusi berikutnya dikirim ke server HTTPDNS, dan cache lokal diperbarui.

  • Setelah cache persisten diaktifkan, catatan DNS diperbarui ke cache lokal. Setelah aplikasi dimulai ulang, cache lokal dimuat ke memori.

  • Dalam versi 2.x.x dan sebelumnya, operasi ini didefinisikan sebagai - (void)setCachedIPEnabled:(BOOL)enable;

Definisi Operasi

- (void)setPersistentCacheIPEnabled:(BOOL)enable;

- (void)setPersistentCacheIPEnabled:(BOOL)enable discardRecordsHasExpiredFor:(NSTimeInterval)duration; // (Tersedia mulai versi 3.1.2)

Kelas

HttpDnsService

Parameter

Parameter

Tipe

Diperlukan

Deskripsi

enable

BOOL

Ya

Nilai valid:

YES: mengaktifkan fitur cache persisten

NO: menonaktifkan fitur cache persisten

duration

NSTimeInterval

Tidak

Parameter ini hanya valid ketika fitur cache persisten diaktifkan. Dalam hal ini, ketika SDK memuat catatan dari cache persisten lokal ke cache memori setelah startup, SDK membersihkan catatan yang waktu kedaluwarsanya melebihi duration ini.

Satuan: detik. Nilai default: 0. Nilai default menunjukkan bahwa catatan yang kedaluwarsa dibersihkan secara default.

Aktifkan resolusi otomatis setelah perubahan jaringan

Ketika jaringan perangkat berubah (seperti beralih dari Wi-Fi ke jaringan seluler atau antar operator), jika HTTPDNS SDK terus mengembalikan alamat IP dari cache, permintaan lintas jaringan mungkin terjadi, memengaruhi kinerja dan tingkat keberhasilan permintaan. Oleh karena itu, SDK mendengarkan peristiwa perubahan jaringan dan secara cerdas menentukan apakah akan menghapus cache resolusi global.

Operasi ini digunakan untuk menentukan apakah akan menyegarkan hasil resolusi semua nama domain setelah SDK menghapus cache resolusi global saat lingkungan jaringan berubah. Jika diaktifkan, SDK memastikan bahwa permintaan jaringan bisnis dapat segera memperoleh hasil baru setelah jaringan beralih, mengurangi waktu resolusi nama domain dan meningkatkan kinerja permintaan.

Mengaktifkan fitur ini dapat sedikit meningkatkan jumlah resolusi. Saklar ini dimatikan secara default.

Definisi Operasi

- (void)setPreResolveAfterNetworkChanged:(BOOL)enable;

Kelas

HttpDnsService

Parameter

Parameter

Tipe

Diperlukan

Deskripsi

enable

BOOL

Ya

Nilai valid:

YES: mengaktifkan resolusi otomatis setelah perubahan jaringan

NO: menonaktifkan resolusi otomatis setelah perubahan jaringan