Запит WHOIS усередині тунелю HTTP CONNECT
Розглядайте рукостискання з проксі та запит WHOIS як два окремі обміни, коли дозволений маршрут HTTP CONNECT передає TCP-запит на порт 43.
Якщо потрібний пошук досі використовує традиційний 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, будь-який наступний запит потребує власного дозволеного з’єднання з цією службою.