Concepts
SOCKS5 vs. HTTP CONNECT
Both protocols open a tunnel to the site you want. They differ in what the proxy sees and what your client supports.
HTTP CONNECT.
An HTTP proxy opens a tunnel when your client sends CONNECT example.com:443. From then on it relays bytes; with HTTPS it never sees the content. Almost every HTTP client supports this out of the box.
gimmeproxy verifies HTTP proxies exactly this way: a CONNECT tunnel, then TLS with certificate validation through it.
SOCKS4 and SOCKS5.
SOCKS is a lower-level protocol: the client asks the proxy to connect to an address and port, and the proxy relays the connection. SOCKS4 takes IPv4 addresses only, so your client resolves names itself. SOCKS5 can pass the host name to the proxy, which then resolves it.
Side by side.
| HTTP CONNECT | SOCKS5 | |
|---|---|---|
| Client support | Built into most HTTP libraries | Often needs an extra package |
| Name resolution | By the proxy | By the proxy with socks5h://, else locally |
| Traffic | TCP through the tunnel | Any TCP connection, not only HTTP |
Which to choose.
- Use
protocol=httpwhen your tool speaks HTTP and you want the simplest setup. - Use
protocol=socks5for non-HTTP TCP traffic, or when you want the proxy to resolve names. - Leave
protocolout to draw from the whole pool and readprotocolin the answer.
Whatever the protocol, a proxy is listed only after a real HTTPS request through it succeeded with a valid certificate.
Keep building.
More guides to help you get the most from gimmeproxy.