HTTP vs SOCKS5 proxies
For an HTTPS website, start with an HTTP proxy that supports CONNECT. Use SOCKS5 when your app supports it. Neither label is a promise of privacy or speed.
On this page
What changes in your client
| Setting | HTTP | HTTPS CONNECT | SOCKS5 |
|---|---|---|---|
| cURL proxy URL | http://IP:PORT | http://IP:PORT | socks5h://IP:PORT |
| HTTPS destination | Only if CONNECT is supported | Recorded CONNECT check passed | With a compatible client |
| Destination DNS | Usually at the proxy | Usually at the proxy | At the proxy with socks5h; local with socks5 |
| App proxy type | HTTP | HTTP | SOCKS5 |
| Find endpoints | HTTP list | HTTPS list | SOCKS5 list |
Replace IP and PORT with the endpoint’s address. On a small screen, scroll across the table to compare the protocols.
Why an HTTPS proxy can use an HTTP URL
There are two connections: your client to the proxy, then the tunnel to the destination. A URL such as http://IP:PORT selects the first connection. An HTTPS destination asks that HTTP proxy to open a tunnel using CONNECT.
FreeProxyHub’s HTTPS label records CONNECT support with certificate validation. It does not mean that the proxy itself accepts a TLS connection. Using https://IP:PORT without that support can cause a handshake failure.
MDN’s CONNECT reference describes how the tunnel is established.
SOCKS5: choose where DNS happens
SOCKS5 relays connections for applications that support it. In cURL and Python Requests, socks5h:// delegates destination hostname resolution to the proxy. socks5:// resolves the hostname locally. Check the equivalent option in other clients.
SOCKS5 does not encrypt application traffic by itself. The application still needs TLS for an HTTPS request. The list does not establish UDP support, all destination ports or every authentication method.
Response time is not download speed
The response-time column records one check in milliseconds. It cannot predict your download throughput or the time needed to reach another destination.
Compare endpoints using the same small request, destination and timeout from your own network. A protocol label alone cannot tell you which will be faster.
Use the type your app accepts
Choose HTTPS CONNECT for HTTPS requests through an HTTP proxy, or SOCKS5 for a SOCKS-capable client. If the client accepts only SOCKS4, use the SOCKS4 list.
The setup guide shows cURL, Firefox and system settings. For scripts, see Python Requests.
Protocol references
HTTP CONNECT (RFC 9110), SOCKS5 (RFC 1928) and cURL’s proxy options.