Якщо потрібний пошук досі використовує традиційний WHOIS, HTTP-проксі може передати цей обмін TCP, коли його політика дозволяє CONNECT до служби WHOIS. Клієнт повинен завершити рукостискання з проксі, перш ніж надсилати текст пошуку. Для дозволеної публічної перевірки WHOIS без налаштованих облікових даних проксі список HTTP-проксі пропонує можливих посередників; окремо підтвердьте, що один із них дозволяє хост служби WHOIS і порт 43.

Для гіпотетичної служби з назвою whois.example почніть із цього HTTP-запиту:

CONNECT whois.example:43 HTTP/1.1
Host: whois.example:43

Записуйте закінчення рядків HTTP як CRLF. Прочитайте повну відповідь проксі, включно з її завершальним порожнім рядком заголовків, і перевірте числовий статус успіху. Отримання частини рядка стану недостатньо, щоб почати наступний протокол.

Потім надішліть текст WHOIS

Після відкриття тунелю надішліть запит, якого очікує цей сервер WHOIS. Простий ілюстративний запит:

example.com<CRLF>

Цей маркер позначає байти повернення каретки та переведення рядка. Він не є частиною доменного імені. Усередині цього обміну WHOIS немає ні рядка HTTP GET, ні статусу HTTP-відповіді.

Читайте текст, доки сервер WHOIS не закриє з’єднання. Відповідь може містити багато рядків; перше переведення рядка не означає, що вона повна. Тримайте тайм-аути з’єднання й читання обмеженими в реалізації.

Ця послідовність також дає парсеру дві різні межі. Спочатку йде блок заголовків HTTP. Потім іде відповідь WHOIS, завершення якої сигналізується закриттям з’єднання. Зберігайте байти, що опинилися в буфері за розібраною межею, замість того щоб відкидати все мережеве читання.

Відмова проксі означає, що тунель так і не відкрився, тому надсилання домену після цього не може дати результат WHOIS. Якщо відповідь сервера вказує на іншу службу WHOIS, будь-який наступний запит потребує власного дозволеного з’єднання з цією службою.

Схожі статті