Proxy protocols

HTTP vs HTTPS vs SOCKS5 proxies

Use the scheme your client handles cleanly.

Field notes Setup checks Updated 2026-05-16

HTTP proxy is the boring default

For browser automation and most HTTP clients, start with an HTTP proxy. It supports normal HTTP requests and HTTPS targets through CONNECT. It is also the path most libraries document best.

The target can still be https://. The proxy URL can still be http://host:port. Those are two different URLs.

HTTPS proxy transport is about the client-to-proxy hop

An HTTPS proxy encrypts the connection between your client and the proxy. It does not magically make the target trust you more. Many tools support HTTP proxies better than HTTPS proxy transport, so test your client first.

SOCKS5 is useful when the client supports it well

SOCKS5 works below HTTP. It is useful for mixed protocols and some apps that expect SOCKS fields. For Python Requests, install SOCKS support first. For DNS through the proxy, prefer socks5h://.

SchemeDNS locationCommon use
http://Client resolves proxy hostBrowsers, curl, most HTTP clients.
https://Client resolves proxy hostEncrypted client-to-proxy transport when supported.
socks5://Often local DNSApps with SOCKS support.
socks5h://Proxy resolves target hostAvoiding local target DNS leaks.

Bandwidth looks different by scheme and client

The scheme does not make failed traffic free. Redirects, CONNECT setup, failed attempts, and retries still count. Browser jobs usually burn more than simple HTTP clients because they load page assets unless you block them.

Two different connections

Proxy debugging gets easier once you split the two connections in your head. First, your client connects to the proxy. Second, the proxy connects to the target. The proxy scheme mostly describes the first hop. The target URL describes the second hop.

That is why http://proxy-host:port can fetch https://target.example. The client asks the proxy to open a CONNECT tunnel. After that, the target TLS session is still between client and target.

QuestionLook at
Can my client speak to the proxy?Proxy scheme and client support.
Can the target use HTTPS?Target URL and CONNECT behavior.
Where does DNS happen?socks5 vs socks5h.
Why is traffic billed?Both hops, redirects, retries, and assets.

Choose by client support first

Protocol debates get abstract fast. The practical question is which scheme your client handles with the fewest surprises. Browser automation usually has better documented HTTP proxy behavior. Python can handle SOCKS well after installing the extra dependency. Random desktop apps may only expose SOCKS fields.

When both schemes work, use the one that gives clearer logs and fewer parser errors. Reliability beats theoretical elegance.

Decision rule

If you are writing docs for your own team, show the exact scheme per client. Do not write "use the proxy" and hope every library behaves the same. Playwright, Puppeteer, Requests, axios, and a desktop app can all need different shapes.

Protocol FAQ

Is SOCKS5 always better? No. It is better only when your client supports it cleanly and you need its behavior.

Does HTTPS proxy mean the target sees HTTPS? No. It describes the client-to-proxy transport. The target URL is separate.

What should beginners use? HTTP proxy for browser automation. socks5h for Python when proxy DNS matters.