Metoda CONNECT

Metoda CONNECT

Za pomocą tego zapytania można połączyć się do serwera pośredniego w drodze do serwera docelowego. Jest to niezbędne, gdy dwa węzły nie są bezpośrednio ze sobą powiązane (np. istnieje zapora sieciowa). Stwarza to wrażenie bezpośredniego połączenia. Często są one wykorzystywane do tworzenia połączenia pomiędzy adresami, które są połączone poprzez jedno lub wiele proxy. Taka komunikacja może być zabezpieczona za pomocą TLS (metoda szyfrowania połączenia).
Wysyłając zapytanie CONNECT należy tylko przekazać docelowy adres, do którego chcemy się połączyć.

CONNECT example.com:80 HTTP/1.1
 Host: example.com:80

Serwer proxy, który odbierze to zapytanie, może wykonać kolejne zapytanie CONNECT, łącząc się do kolejnego proxy i tworząc w ten sposób łańcuch połączeń. Po ustanowieniu połączenia, zwracany jest status 200 (OK), zaś status 400 (Bad request) zwracany jest wtedy, gdy serwer nie obsługuje funkcji serwera proxy. Od momentu otrzymania rezultatu o powodzeniu operacji, pośrednie serwery proxy zmieniają tryb pracy na tunelowanie przechodzących wiadomości. W przypadku zamknięcia połączenia w jakimkolwiek serwerze biorącym udział w operacji, cały tunel powinien zostać zamknięty.

Możliwa jest także autoryzacja przy korzystaniu z proxy. Należy do tego celu użyć nagłówka Proxy-Authorization

CONNECT server.example.com:80 HTTP/1.1
 Host: server.example.com:80
 Proxy-Authorization: basic aGVsbG86d29ybGQ=

Istnieje niebezpieczeństwo niepoprawnego działania tunelowanego połączenia, gdy skorzystamy z powszechnie używanych portów do innych celów niż standardowo przyjęte. Dla przykładu, gdy używamy portu 25 standardowo przypisanego obsłudze SMTP, serwer może odrzucać część naszej komunikacji jako spam emailowy. Z uwagi na to serwery proxy powinny używać zdefiniowanego zakresu portów, aby nie powodować tego typu kolizji.