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

Proxy connection settings
SettingHTTPHTTPS CONNECTSOCKS5
cURL proxy URLhttp://IP:PORThttp://IP:PORTsocks5h://IP:PORT
HTTPS destinationOnly if CONNECT is supportedRecorded CONNECT check passedWith a compatible client
Destination DNSUsually at the proxyUsually at the proxyAt the proxy with socks5h; local with socks5
App proxy typeHTTPHTTPSOCKS5
Find endpointsHTTP listHTTPS listSOCKS5 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.