Metoda HTTP CONNECT

CONNECT to polecenie HTTP, którym program prosi proxy o otwarcie bezpośredniego tunelu do strony.

Zaktualizowano · Redakcja Prokso

Przy stronach z HTTPS proxy HTTP nie czyta żądań, tylko łączy program ze stroną. Program wysyła „CONNECT example.com:443”, proxy odpowiada „200” i dalej po prostu przekazuje zaszyfrowane dane w obie strony.

Dlatego przez proxy HTTP można bezpiecznie otwierać strony z TLS: treści stron proxy nie widzi.

Jeśli tunel się nie otworzył, przeglądarka pokazuje błąd w rodzaju ERR_TUNNEL_CONNECTION_FAILED. Przyczyny i rozwiązania zebrano na stronie błąd tunelu.

Tunel otwiera się tylko do dozwolonych portów. W Prokso otwarte są m.in. 80, 443, 8080 i 8443, a porty pocztowe są zamknięte.

Wymiana CONNECT linia po linii

Program wysyła do proxy żądanie z trzech linii: CONNECT example.com:443 HTTP/1.1, Host: example.com:443 i Proxy-Authorization: Basic ... z danymi logowania. Proxy sprawdza dane, łączy się ze stroną i odpowiada linią statusu z kodem 200. Po pustej linii połączenie staje się tunelem i zaczyna się uzgadnianie TLS ze stroną. Nagłówek Host powtarza cel, bo HTTP/1.1 wymaga go w każdym żądaniu.

Każdy kod inny niż 2xx oznacza, że tunel się nie otworzył, a odpowiedź przyszła od proxy, a nie od strony. W Prokso kod 407 oznacza błędne dane logowania lub wyczerpany transfer, a 503 z oznaczeniem NO_RAY to brak wolnego adresu dla wybranego geo. Co zrobić z 407, opisano na stronie błąd 407.

Jak zobaczyć CONNECT w curl

Uruchom curl -v -x http://LOGIN:PASSWORD@gw.prokso.com:823 https://example.com. Linie zaczynające się od > to to, co wysłał curl, a linie z < to odpowiedzi. Najpierw zobaczysz > CONNECT example.com:443 HTTP/1.1 i odpowiedź proxy, potem linie TLS i dopiero po nich odpowiedź strony. Jeśli po kodzie proxy nie ma linii TLS, tunel się nie otworzył, a przyczynę wyjaśnia sam kod. Więcej przykładów znajdziesz w instrukcji dla curl.

Kiedy CONNECT nie jest używany

Dla adresów z http:// program nie otwiera tunelu. Wysyła do proxy pełny adres, na przykład GET http://example.com/page HTTP/1.1, a proxy samo przekazuje żądanie. W takim przypadku adres strony i jej treść są widoczne dla proxy, bo nie ma szyfrowania.

W curl opcja -p (--proxytunnel) wymusza tunel także dla adresów z http://.

Pytania i odpowiedzi (FAQ)

Dlaczego strona się otwiera, a tunel nie?

Najczęściej program idzie na zamknięty port albo proxy odrzucił logowanie. Sprawdź linię w sprawdzarce proxy i port strony.

Czy CONNECT jest potrzebny dla SOCKS5?

Nie. SOCKS5 ma własne polecenie połączenia, a CONNECT jest częścią proxy HTTP.

Rezydencjalne $1.59, mobilne $2.50, serwerowe $0.65 za 1 GB

Rejestracja w minutę, dostęp od razu po płatności.

Utwórz konto