1

proxy droid pic

This image is ProxyDroid application and I saw some proxy soft wares like these one.

I find some free servers for http method (http proxy the famous one) and find servers for socks 4 and 5 but I cant find any server that support https and http tunnel and in other word I cant understand what are exactly these protocols.

skink
  • 5,133
  • 6
  • 37
  • 58

1 Answers1

4

Proxying HTTPS is done with a HTTP proxy by using the CONNECT request. Using this request the HTTP proxy is instructed to create a tunnel to the target server. Inside this tunnel the client can the do the TLS handshake needed for HTTPS:

> CONNECT example.org:443 HTTP/1.0
>

... proxy established TCP connection to example.org:443 ...

< HTTP/1.0 200 Connection established
<

... tunnel to target established
... proxy forwards data between client and target unchanged
<-> TLS handshake
<-> application data protected by TLS

HTTP tunnel is similar. Normally a HTTP request gets proxied by sending a HTTP proxy request:

> GET http://example.org/index.html HTTP/1.0
> Host: example.org
>

... proxy connects to target example.org and forwards request
... then sends response from target server back

< HTTP/1.0 200 ok
< Content-length: ...
< ...

With HTTP tunnel the client instead uses the CONNECT method described above to create a tunnel to the target server and send the request:

> CONNECT example.org:80 HTTP/1.0
>
< HTTP/1.0 200 Connection established
<

... tunnel established, send HTTP request over tunnel and get reply back

> GET /index.html HTTP/1.0
> Host: example.org
> ...
< HTTP/1.0 200 ok
< ...
Steffen Ullrich
  • 114,247
  • 10
  • 131
  • 172
  • was you answer only about proxydorid application? in all proxies is it same ? I read in Wikipedia and some other references that there are many ways to create HTTP tunnel and one of these ways is to use HTTP connect . is there any other way to create HTTP tunnel? I see an application named tunnel guru used http tunnel with http post without using http connect. –  Oct 24 '17 at 10:13
  • 1
    @mark.taylor: CONNECT is the normal way to do a tunnel. This gets used for example by Skype too. But, there are also other ways of tunneling over normal HTTP, over websockets... . Still, a simple "HTTP tunnel" without further explanation is almost always a tunnel created with CONNECT. – Steffen Ullrich Oct 24 '17 at 11:03