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