Запрос 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, любой последующий запрос требует собственного разрешённого соединения с этой службой.