Jeśli wymagane wyszukanie nadal korzysta z tradycyjnego WHOIS, proxy HTTP może przenieść tę wymianę TCP, gdy jego polityka zezwala na CONNECT do usługi WHOIS. Klient musi zakończyć uścisk dłoni z proxy, zanim wyśle tekst wyszukiwania. Dla dozwolonego publicznego testu WHOIS bez skonfigurowanych danych uwierzytelniających proxy lista proxy HTTP oferuje kandydatów na pośredników; osobno potwierdź, że któryś zezwala na host usługi WHOIS i port 43.

Dla hipotetycznej usługi o nazwie whois.example zacznij od tego żądania HTTP:

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

Zapisuj końce wierszy HTTP jako CRLF. Przeczytaj całą odpowiedź proxy, łącznie z jej końcowym pustym wierszem nagłówka, i sprawdź numeryczny status powodzenia. Otrzymanie tylko części wiersza statusu nie wystarcza, aby rozpocząć następny protokół.

Następnie wyślij tekst WHOIS

Po otwarciu tunelu wyślij zapytanie, którego oczekuje ten serwer WHOIS. Proste zapytanie ilustracyjne to:

example.com<CRLF>

Znacznik oznacza bajty powrotu karetki i przejścia do nowego wiersza. Nie jest częścią nazwy domeny. Wewnątrz tej wymiany WHOIS nie ma wiersza HTTP GET ani statusu odpowiedzi HTTP.

Czytaj tekst, aż serwer WHOIS zamknie połączenie. Odpowiedź może zawierać wiele wierszy; pierwszy nowy wiersz nie oznacza, że jest kompletna. Utrzymuj limity czasu połączenia i odczytu ograniczone w implementacji.

Ta sekwencja daje parserowi także dwie różne granice. Najpierw przychodzi blok nagłówków HTTP. Potem przychodzi odpowiedź WHOIS, której zakończenie sygnalizuje zamknięcie połączenia. Zachowaj bajty zbuforowane poza przeanalizowaną granicą, zamiast odrzucać cały odczyt sieciowy.

Odrzucenie przez proxy oznacza, że tunel nigdy się nie otworzył, więc wysłanie domeny później nie może dać wyniku WHOIS. Jeśli odpowiedź serwera wskazuje inną usługę WHOIS, każde kolejne zapytanie wymaga własnego dozwolonego połączenia z tą usługą.

Powiązane artykuły