Po wierszu żądania CONNECT te bajty nadal należą do proxy:

CONNECT service.example:443 HTTP/1.1\r\n
Host: service.example:443\r\n
User-Agent: example-client\r\n
\r\n

Przekazanie Host lub User-Agent do portu 443 daje celowi nagłówki w postaci zwykłego tekstu tam, gdzie oczekuje TLS. Ten błąd może wystąpić, zanim wybór szyfru zacznie mieć znaczenie.

  1. Czytaj i analizuj aż do terminatora nagłówków z pustą linią, w ramach terminu konfiguracji i limitu rozmiaru nagłówków.
  2. Zastosuj uwierzytelnianie proxy i politykę celu.
  3. Nawiąż zatwierdzone połączenie z celem.
  4. Wyślij pomyślną odpowiedź CONNECT i przejdź w tryb tunelu.

Zachowaj zbuforowane bajty po granicy dla odpowiedniego następnego stanu. Nie odrzucaj ich i nie traktuj nagłówków żądania proxy jako późniejszego żądania witryny.

Klient ma odpowiedni obowiązek po stronie odpowiedzi: dokończ czytanie pomyślnej odpowiedzi CONNECT przed rozpoczęciem protokołu tunelowanego. Obie strony muszą uzgodnić granicę, na której strumień zmienia rolę.

Powiązane artykuły