Una query WHOIS dentro un tunnel HTTP CONNECT
Seguite l’handshake del proxy e la richiesta WHOIS come due scambi distinti quando una rotta HTTP CONNECT consentita trasporta una query TCP verso la porta 43.
Se una ricerca necessaria usa ancora il WHOIS tradizionale, un proxy HTTP può trasportare quello scambio TCP quando la sua politica consente CONNECT verso il servizio WHOIS. Il client deve completare l’handshake del proxy prima di inviare il testo della ricerca. Per un test WHOIS pubblico consentito senza credenziali proxy configurate, la lista di proxy HTTP offre intermediari candidati; verificate separatamente che uno consenta l’host del servizio WHOIS e la porta 43.
Per un servizio ipotetico chiamato whois.example, iniziate con questa richiesta HTTP:
CONNECT whois.example:43 HTTP/1.1
Host: whois.example:43
Scrivete le terminazioni di riga HTTP come CRLF. Leggete la risposta completa del proxy, inclusa la sua riga di intestazione vuota finale, e controllate lo stato numerico di successo. Ricevere solo una parte della riga di stato non basta per avviare il protocollo successivo.
Poi inviate il testo WHOIS
Aperto il tunnel, inviate la query attesa da quel server WHOIS. Una semplice query illustrativa è:
example.com<CRLF>
Il marcatore rappresenta i byte di ritorno carrello e avanzamento riga. Non fa parte del nome di dominio. Dentro questo scambio WHOIS non ci sono né una riga HTTP GET né uno stato di risposta HTTP.
Leggete il testo finché il server WHOIS non chiude la connessione. Una risposta può contenere molte righe; la prima riga nuova non significa che sia completa. Mantenete limitati i timeout di connessione e di lettura nell’implementazione.
Questa sequenza offre al parser anche due confini distinti. Per prima arriva un blocco di intestazioni HTTP. Poi arriva la risposta WHOIS, il cui completamento è segnalato dalla chiusura della connessione. Conservate i byte memorizzati nel buffer oltre un confine già analizzato invece di scartare un’intera lettura di rete.
Un rifiuto del proxy significa che il tunnel non è mai stato aperto, quindi inviare un dominio dopo non può produrre un risultato WHOIS. Se la risposta del server rimanda a un altro servizio WHOIS, ogni query successiva richiede la propria connessione consentita verso quel servizio.