Ya, sebagian besar peramban dari 5-10 tahun terakhir akan mencoba catatan A lainnya jika salah satu gagal merespons. Ini kadang-kadang disebut "coba lagi browser" atau "coba lagi klien" rupanya. Anda hanya akan menemukan banyak hal tentang hal itu dalam konteks berbagai eksploit browser yang memungkinkan fitur ini terhadap situs yang tidak menggunakannya (lihat rebinding DNS dan pinning DNS , pinning anti-dns, pinning anti-dns, pinning anti-anti-dns, anti-anti -anti-dns menyematkan , dan sebagainya). Agak reputasi buruk, tetapi itu membuktikan itu ada.
Cukup banyak setiap browser memang menerima daftar lengkap catatan A, dan memang memeriksa orang lain jika yang digunakan gagal. Anda dapat mengharapkan setiap klien menunggu selama 30 detik ketika mereka pertama kali mencoba mengakses situs ketika server sedang down, hingga terhubung ke alamat yang berfungsi. Browser kemudian akan men-cache alamat yang berfungsi dan terus menggunakan yang itu untuk permintaan di masa depan kecuali jika itu juga gagal, maka itu harus mencari melalui daftar lagi. Jadi 30 detik menunggu permintaan pertama, setelah itu baik-baik saja.
Tapi itu bukan sesuatu yang Anda ingin gunakan, itu akan memiliki banyak peringatan tentang kompatibilitas browser, kompatibilitas os, kompatibilitas proxy, header kontrol-cache akan memiliki efek aneh pada apakah ia mengingat IP yang turun atau mulai memiliki bahwa 30 detik menunggu pada setiap permintaan, orang yang menulis klien khusus untuk situs Anda akan berakhir menggunakan gethostbyname alih-alih getaddrinfo dan tidak dapat menangani failover, semua jenis masalah potensial.
Anda juga tidak dapat mengandalkan beberapa catatan A untuk memungkinkan server "master" dan "slave", karena Anda tidak akan pernah tahu alamat browser mana yang akan dipilih. Mereka semua harus mampu menangani pengunjung jika berjalan, karena siapa pun mungkin mendapatkan lalu lintas jika sudah habis. Peramban mungkin berpikir server ketiga Anda keluar dari daftar adalah yang paling menarik, mungkin terlihat paling dekat, dan ia akan memilih yang satu meskipun ketiganya masih ada.
Tetapi jika Anda dapat hidup dengan keterbatasan dan memiliki sistem HTTP yang cukup sederhana yang dapat digunakan untuk memprediksi interaksi browser, itu akan berfungsi.
Oh, Anda juga harus berurusan dengan banyak orang yang mengatakan ini tidak ada (karena itu benar 15 tahun yang lalu). Tetapi Anda dapat mencoba telnet-ing ke nama domain dengan beberapa catatan A, beberapa dengan IP mati dan beberapa yang bagus, jika Anda perlu membuktikannya (ya, bahkan telnet tua yang baik sekarang menggunakan getaddrinfo dan menangani banyak catatan A dengan anggun hari ini) - itu akan mencetak daftar IP yang bagus yang dicoba sampai akhirnya berhasil.
Berhati-hatilah bahwa Windows Vista mengimplementasikan bagian bodoh RFC3484 (yaitu, backporting dari IPV6 ke IPV4) dan akan lebih suka alamat IP yang berbagi bit awalan paling banyak dengan alamat IP pengguna daripada memilih satu secara acak. Karena sebagian besar pengguna memiliki alamat IP yang dimulai dengan 192.168, itu berarti mana dari alamat IP Anda yang membagikan sebagian bit awalan dengan yang akan mendapatkan sebagian besar lalu lintas Vista. Microsoft memperbaiki sedikit kebodohan ini di Windows 7 dan yang lebih baru, jadi ini bukan masalah seperti dulu.
sumber
Ini adalah teknik distribusi penyeimbangan beban DNS dasar: DNS Round Robin. Ini tidak ada hubungannya dengan browser, itu tergantung pada implementasi resolver, dan cache lokal / jarak jauh dari alamat DNS. Perubahannya adalah jika server gagal, karena caching di lapisan DNS situs web Anda mungkin tidak dapat diakses.
Lihat di sini untuk penjelasan dasar tentang Round Robin DNS di WikiPedia.
sumber
nslookup cnn.com
pada Windows danhost cnn.com
Linux mengembalikan daftar alamat IP, jadi itu pasti tergantung pada implementasi browser .OS menentukan IP apa yang digunakan, bukan browser. Windows akan memutari daftar yang dikembalikan (dalam daftar yang dikembalikan dari DNS), meskipun akan terus menggunakan alamat yang sama sampai DNS memerah atau habis waktu. * Implementasi ix sebagian bergantung pada implementasi stack tcp yang dibundel tetapi biasanya mengikuti metode round robin juga.
sumber
InetAddress.getAllByName("example.com")
saya mendapatkan daftar dengan semua alamat IP, jadi saya dapat memilih untuk memulai koneksi TCP ke semua itu jika saya mau. Dan itu sama jika Anda menggunakangetaddrinfo()
dalam C. Jadi itu pasti pilihan yang dilakukan pengembang dan bukan Sistem Operasi. Server DNS hanya memutuskan dalam urutan apa daftar alamat IP dikembalikan.