An HTTP proxy is the most common kind of proxy, and it handles two kinds of traffic differently:
- Plain
http://sites. Your client sends the whole request to the proxy with the full URL in the request line,GET http://example.com/ HTTP/1.1. The proxy reads it, fetches the page and returns the response. It can see and change everything. https://sites. Your client sends a CONNECT request naming the host and port. The proxy opens a TCP tunnel and relays encrypted bytes. It sees the hostname, never the page.
Almost all web traffic is HTTPS now, so in practice an HTTP proxy is mostly a tunnel.
See it in action
The verbose flag shows which path curl takes:
curl -v -x http://USERNAME:PASSWORD@HOST:PORT "https://api.ipify.org?format=json"
Look for CONNECT api.ipify.org:443 and 200 Connection established in the output. A 407 at that point is the proxy refusing your credentials; see 407 Proxy Authentication Required.
HTTP proxy vs SOCKS5
An HTTP proxy only carries web traffic. SOCKS5 relays any TCP connection, so it also works for mail, databases and custom protocols. For scraping websites, HTTP is the default and the best-supported option across libraries and browsers. HTTP vs SOCKS5 proxies goes deeper on the trade-offs.
Common confusion
"HTTP proxy" describes how your client talks to the proxy, not which sites it can reach. An http:// proxy URL tunnels HTTPS sites perfectly well. For HTTPS sites through ProxyHive, use the HTTP port with an http:// proxy URL, as every integration guide does.