Every time you create a proxy on Nodetonet, the panel asks you to choose a protocol: HTTP, SOCKS5, or HTTPS. The three options look interchangeable — until they are not. Pick the wrong one and your client either refuses to connect, silently strips authentication headers, or leaks plaintext credentials across an untrusted network.
TL;DR: use HTTP for everyday web traffic, SOCKS5 whenever your client is not an HTTP application, and HTTPS-to-proxy only when the link between your machine and the proxy itself must be encrypted. Everything below explains exactly why, with a client-compatibility table, a use-case matrix, and a precise decision tree.
What these three options actually control
An important clarification first: the protocol you choose controls how your client talks to the proxy edge. It has nothing to do with whether the target site is HTTP or HTTPS — those are independent layers. You can reach https://example.com through an HTTP proxy, a SOCKS5 proxy, or an HTTPS proxy with equal success. The only thing that changes is the handshake between your tool and Nodetonet's edge server.
HTTP proxy
Your client opens a plain TCP connection to the proxy port and sends an HTTP request. For HTTP targets it forwards the request verbatim. For HTTPS targets, it issues a CONNECT host:443 command first, the proxy opens a raw TCP tunnel to the target, and your client then performs the TLS handshake end-to-end. The proxy never sees the encrypted payload — it is just a dumb pipe once the tunnel is open.
Advantages: every HTTP client on the planet speaks it natively. You can test a proxy in seconds with curl -x http://user:pass@host:port https://ipinfo.io. Debugging is straightforward — Wireshark, mitmproxy and browser DevTools all understand HTTP CONNECT.
SOCKS5 proxy
SOCKS5 operates one level below HTTP. Your client opens a TCP connection to the proxy, exchanges a brief negotiation (version, auth method, destination address), and then the proxy forwards raw bytes in both directions. No HTTP semantics exist on the proxy side at all — it simply connects two TCP sockets and copies bytes between them.
That transport-agnostic design means SOCKS5 works for any TCP-based protocol: HTTP, HTTPS, FTP, SMTP, SSH, IRC, database connections, game clients, and custom binary protocols. If it runs over TCP, SOCKS5 can proxy it. SOCKS5 also optionally supports UDP association, which matters for DNS, media streaming and a handful of game protocols that HTTP cannot touch at all.
On Nodetonet, SOCKS5 proxies share the same username/password authentication scheme as HTTP, so you do not need to change your credential management — only the protocol prefix in the connection string.
HTTPS-to-proxy
HTTPS-to-proxy is the same shape as HTTP, but the TCP connection from your client to the proxy is wrapped in TLS first. The proxy URL starts with https:// instead of http://. This means your proxy credentials and the early CONNECT or request line travel inside an encrypted channel even before the proxy starts forwarding anything.
It adds one TLS round-trip to every new connection and requires that your proxy client library actually supports TLS-to-proxy (most modern HTTP libraries do; older curl builds and some embedded clients do not). The benefit is narrow but real: if someone is monitoring the link between your machine and our edge — think a corporate MITM or a hostile Wi-Fi access point — they cannot see the proxy hostname, credentials, or the target you are connecting to.
Side-by-side comparison
| Feature | HTTP | SOCKS5 | HTTPS-to-proxy |
|---|---|---|---|
| Can proxy HTTPS websites | Yes (via CONNECT tunnel) | Yes (raw TCP forward) | Yes (via CONNECT tunnel) |
| Can proxy non-HTTP traffic | No | Yes — any TCP/UDP | No |
| Client-to-proxy link encrypted | No | No | Yes (TLS) |
| Username/password auth | Yes | Yes | Yes |
| Native support in browsers | Yes | Yes | Yes (via PAC/settings) |
| Native support in curl | Yes | Yes | Yes |
Python requests |
Yes | Yes (needs requests[socks]) |
Yes |
| Node.js fetch / Axios | Yes | Needs socks-proxy-agent |
Yes |
| Telegram / IRC / SSH | No | Yes | No |
| Per-request overhead | Low | Very low | Medium (extra TLS round-trip) |
| Easiest to debug | Yes | Moderate | Moderate |
Client compatibility at a glance
The single biggest reason to prefer one protocol over another is what your client actually supports out of the box. Here is a quick reference:
| Client / tool | HTTP | SOCKS5 | HTTPS-to-proxy |
|---|---|---|---|
| curl | Yes | Yes | Yes |
| Chrome / Firefox / Edge | Yes | Yes | Yes (via PAC or settings) |
Python requests | Yes | Yes* | Yes |
Python httpx | Yes | Yes* | Yes |
| Node.js fetch | Yes | Needs agent | Yes |
| Playwright / Puppeteer | Yes | Yes | Yes |
| Telegram desktop | No | Yes | No |
SSH dynamic forward (-D) | No | Yes | No |
| Postman | Yes | No | Yes |
| Android system proxy | Yes | Partial | Partial |
| MySQL / Postgres tunnel | No | Yes | No |
* needs the requests[socks] or httpx[socks] extras — install with pip install requests[socks].
When to use HTTP
HTTP is the right answer for the vast majority of proxy workloads. If your task is any of the following, pick HTTP and move on:
- Web scraping and crawling — every scraping framework (Scrapy, Playwright, Puppeteer, requests, httpx) speaks HTTP natively. No extra dependencies.
- Browser automation — Playwright's
--proxy-serverflag and Puppeteer'sproxyServeroption both default to HTTP. - REST API calls — Postman, Insomnia, curl, and every language SDK default to HTTP proxies.
- Ad verification and brand protection — most commercial tools expect an HTTP proxy string.
- Learning and debugging — mitmproxy, Charles Proxy, and Wireshark all have first-class HTTP CONNECT support. You can inspect every hop.
On Nodetonet, HTTP is the default protocol for a reason: it works everywhere, requires no extra setup, and the sticky session -session-XXXX suffix and geo-targeting username modifiers work identically regardless of protocol.
When to use SOCKS5
Reach for SOCKS5 the moment any of these conditions apply:
- Non-HTTP applications. Telegram, IRC clients, game launchers, SSH dynamic forwarding (
ssh -D 1080 -N user@host), and anything that talks raw TCP cannot use an HTTP proxy at all. SOCKS5 is the only option. - Database tunnels. Routing a MySQL or PostgreSQL connection through a proxy requires raw TCP forwarding — SOCKS5 handles this cleanly while HTTP cannot.
- Multi-protocol apps. If one application sends HTTP requests, WebSocket traffic, and binary protocol messages simultaneously, a SOCKS5 proxy handles all of them through a single connection string.
- UDP traffic. SOCKS5 supports optional UDP association, which allows DNS lookups, VoIP and media protocols to pass through. HTTP has no equivalent.
- Slightly lower overhead on high-throughput workloads. Because SOCKS5 does not re-parse HTTP headers on every request, sustained high-volume connections have marginally less per-message processing.
Read our deep-dive on SOCKS5 with authentication if you are wiring username/password credentials into a non-browser SOCKS5 client.
When to use HTTPS-to-proxy
HTTPS-to-proxy is a narrow but legitimate choice when the network between your client and Nodetonet's edge is itself untrusted:
- Public or corporate Wi-Fi with deep-packet inspection. Without TLS to the proxy, a MITM device on the path can read the proxy hostname, your credentials in the HTTP
Proxy-Authorizationheader, and the destination host in the firstCONNECTline. - Customer-facing SDKs and white-label products. If you ship a product that embeds proxy credentials, encrypting the proxy link prevents the operator of the customer's network from harvesting them.
- Compliance requirements. Some security policies require all credentials in transit to be encrypted, including proxy auth headers. HTTPS-to-proxy satisfies that requirement without changing the target traffic at all.
Note that the target request is already encrypted by HTTPS if the destination is an HTTPS site — HTTPS-to-proxy adds encryption only on the first hop between your client and our edge. It does not double-encrypt the full payload end-to-end.
Use-case decision matrix
| What you are building | Best choice | Why |
|---|---|---|
| Web scraper (Python/Node) | HTTP | Native support, easiest debugging |
| Browser automation (Playwright) | HTTP | Direct flag support, no extra deps |
| REST API client / Postman | HTTP | Universal support |
| Telegram / IRC / chat app | SOCKS5 | Only option for non-HTTP |
| SSH dynamic forwarding | SOCKS5 | ssh -D is a SOCKS5 listener by spec |
| Database connection tunnel | SOCKS5 | Raw TCP, no HTTP framing |
| Game client / binary protocol | SOCKS5 | Transport-agnostic |
| High-security credential handling | HTTPS | Encrypts auth headers in transit |
| Corporate DPI environment | HTTPS | Hides proxy hostname and credentials |
| White-label SDK deployment | HTTPS | Protects embedded credentials |
How Nodetonet handles all three
Nodetonet's HTTP and SOCKS5 proxy infrastructure serves both protocols from the same underlying device pool. Whether you create an HTTP or SOCKS5 proxy, the exit IP comes from the same pool of real mobile devices — your choice of protocol only changes the handshake between your tool and the edge server, not the exit node.
Key features that work identically across all three protocols:
- Sticky sessions — append
-session-XXXXto your proxy username to pin a sticky session regardless of protocol. - Geo-targeting — append country, city or carrier modifiers (see geo-targeting docs) to the same username.
- Rotating mode — without a session suffix, each new connection may exit from a different device in the pool.
- Per-client controls — IP whitelists, domain allow/deny lists, quota limits and thread limits all apply at the auth layer, not the protocol layer, so they work with HTTP, SOCKS5 and HTTPS equally.
- TCP/IP fingerprint spoofing — the edge normalises the TCP stack fingerprint before the request leaves, regardless of which protocol was used to deliver it.
If you want to verify which IP and carrier any proxy exits from after setup, use our free What is my IP tool, or run it through the proxy checker to confirm connectivity and latency.
Common mistakes
- Choosing SOCKS5 for a Python scraper "because it's faster." The overhead difference is negligible at normal scraping rates. HTTP is faster to set up, easier to debug, and has wider library support — stick with it unless you need non-HTTP traffic.
- Using HTTP for Telegram or an IRC client. These applications expect a SOCKS5 proxy. Using HTTP results in a silent connection failure, not a helpful error.
- Confusing HTTPS-to-proxy with "proxying HTTPS sites." You can proxy HTTPS sites over a plain HTTP proxy. The two concepts are unrelated — the protocol choice is about your client-to-proxy link, not the target.
- Rotating when you need to be sticky. For any stateful workflow — login, checkout, account actions — add the
-session-XXXXsuffix so the same IP handles the full session. See the full explanation in sticky sessions explained. - Forgetting that SOCKS5 needs an extra library in Python. Plain
pip install requestsdoes not include SOCKS support. Runpip install requests[socks]first, or usehttpx[socks].
Token groups, pools, and protocol choice
If you are building a rotating proxy pool rather than a single-exit proxy, Nodetonet's token groups let you bundle many devices into one endpoint with automatic round-robin or least-connection device selection and automatic failover. The group endpoint speaks HTTP and SOCKS5 — pick the one your workload needs when you create the proxy client, and the group handles device selection behind it transparently.
For high-volume deployments where several tools run simultaneously, the per-client auth system lets you issue separate credentials to each tool, each with its own quota, thread limit and IP restriction — again, those controls apply regardless of which protocol that client uses.
Quick reference: the one-line rule
Default to HTTP. Switch to SOCKS5 when your client is not an HTTP application. Switch to HTTPS-to-proxy only when the network between your machine and the proxy is untrusted and you need to protect credentials in transit.
Further reading
- SOCKS5 with authentication — wiring username/password into a SOCKS5 client across different languages.
- HTTPS proxies and SNI routing — how Nodetonet terminates TLS at the edge and routes by SNI.
- Sticky sessions explained — when and how to pin a session so stateful flows do not break.
- When to use rotating mobile proxies — pairs well with this guide if you are deciding between rotating and sticky on top of your protocol choice.
- What is a mobile proxy? — if you are still deciding on the proxy type itself before you pick a protocol.
- SOCKS5 proxy glossary entry — concise definition and technical reference.