Kueri WHOIS di Dalam Tunnel HTTP CONNECT
Ikuti handshake proxy dan permintaan WHOIS sebagai dua pertukaran terpisah saat rute HTTP CONNECT yang diizinkan membawa kueri TCP ke port 43.
Jika pencarian yang diperlukan masih memakai WHOIS tradisional, proxy HTTP dapat membawa pertukaran TCP itu bila kebijakannya mengizinkan CONNECT ke layanan WHOIS. Klien harus menyelesaikan handshake proxy sebelum mengirim teks pencarian. Untuk uji WHOIS publik yang diizinkan tanpa kredensial proxy yang dikonfigurasi, daftar proxy HTTP menawarkan perantara kandidat; pastikan secara terpisah bahwa salah satunya mengizinkan host layanan WHOIS dan port 43.
Untuk layanan hipotetis bernama whois.example, mulailah dengan permintaan HTTP ini:
CONNECT whois.example:43 HTTP/1.1
Host: whois.example:43
Tulis akhir baris HTTP sebagai CRLF. Baca respons proxy secara lengkap, termasuk baris header kosong yang mengakhirinya, lalu periksa status keberhasilan numerik. Menerima sebagian baris status tidak cukup untuk memulai protokol berikutnya.
Lalu kirim teks WHOIS
Setelah tunnel terbuka, kirim kueri yang diharapkan server WHOIS itu. Kueri ilustratif sederhana adalah:
example.com<CRLF>
Penanda mewakili byte carriage-return dan line-feed. Itu bukan bagian dari nama domain. Tidak ada baris HTTP GET maupun status respons HTTP di dalam pertukaran WHOIS ini.
Baca teks sampai server WHOIS menutup koneksi. Respons dapat berisi banyak baris; baris baru pertama tidak berarti sudah lengkap. Jaga batas waktu koneksi dan pembacaan dalam implementasi.
Urutan ini juga memberi parser dua batas berbeda. Pertama datang blok header HTTP. Setelah itu datang respons WHOIS, yang penyelesaiannya ditandai oleh penutupan koneksi. Simpan byte apa pun yang tersangga melewati batas yang telah diurai alih-alih membuang seluruh pembacaan jaringan.
Penolakan proxy berarti tunnel tidak pernah terbuka, sehingga mengirim domain setelahnya tidak dapat menghasilkan hasil WHOIS. Jika jawaban server menunjuk ke layanan WHOIS lain, setiap kueri lanjutan membutuhkan koneksinya sendiri yang diizinkan ke layanan tersebut.