What Is a Proxy Server?
A proxy server is an intermediary that sits between your device and the internet. Instead of connecting directly to a website or API, your request travels through the proxy first. The proxy forwards that request on your behalf, receives the response, and sends it back to you. To the destination server, the request appears to come from the proxy's IP address — not yours.
Proxies exist for many reasons: privacy, security, performance, and access control. Businesses use them to scrape data at scale, monitor search engine results, verify advertisements, and access geo-restricted content. Developers use them to test how applications behave from different locations. Security teams use them to inspect traffic and enforce policies.
This guide covers everything you need to know about proxy servers — from how they work under the hood to the different types available, common use cases, code examples, and how to choose the right proxy for your project.
How Proxy Servers Work
The fundamental mechanism is straightforward. Here is what happens when you route a request through a proxy:
- Client sends a request — your application (browser, script, or bot) sends an HTTP/HTTPS request to the proxy server instead of directly to the target.
- Proxy evaluates the request — the proxy may apply rules: authentication checks, IP filtering, header modification, or caching lookups.
- Proxy forwards the request — the proxy connects to the target server using its own IP address and forwards your request (potentially with modified headers).
- Target responds — the target server processes the request and sends the response back to the proxy.
- Proxy returns the response — the proxy forwards the response back to your client, possibly caching it or modifying headers.
Key point: The target server sees the proxy's IP address, not yours. This is the foundation of every proxy use case — from anonymity to geo-targeting to load distribution.
Connection Flow Diagram
Client (your app)
│
▼
Proxy Server (gate.proxyhat.com:8080)
│
▼
Target Server (example.com)
│
▼
Proxy Server (receives response)
│
▼
Client (receives response)
With HTTPS traffic, the proxy can operate in two modes. In tunneling mode (HTTP CONNECT), the proxy creates a TCP tunnel and the encrypted traffic passes through without the proxy reading it. In TLS-terminating mode, the proxy decrypts and re-encrypts traffic — common in corporate environments for inspection but not typical for web scraping proxies.
Types of Proxy Servers by Function
Proxies are categorized by their position in the network and their behavior. Understanding these types helps you choose the right architecture for your use case.
Forward Proxy
A forward proxy sits in front of clients and forwards their requests to the internet. This is the most common type — when people say "proxy," they usually mean a forward proxy. Web scraping proxies, privacy proxies, and content-filtering proxies are all forward proxies.
Reverse Proxy
A reverse proxy sits in front of one or more servers and handles incoming client requests. Nginx and Cloudflare are examples. Reverse proxies provide load balancing, SSL termination, caching, and DDoS protection. They protect servers rather than clients.
Transparent Proxy
A transparent proxy intercepts traffic without requiring any client configuration. The client does not know a proxy exists. ISPs and corporate networks use them for content filtering and caching. They do not provide anonymity — they pass your real IP in the X-Forwarded-For header.
Anonymous Proxy
An anonymous proxy hides your IP address from the target server but identifies itself as a proxy (via headers like Via). The target knows a proxy is being used but cannot determine the original IP.
Elite (High-Anonymity) Proxy
An elite proxy provides the highest level of anonymity. It does not reveal itself as a proxy and does not pass any identifying headers. To the target server, the request looks like a normal direct connection. Residential proxies from providers like ProxyHat are elite proxies by default.
| Proxy Type | Hides Your IP | Reveals It's a Proxy | Best For |
|---|---|---|---|
| Transparent | No | Yes | Corporate filtering, caching |
| Anonymous | Yes | Yes | Basic privacy, geo-unblocking |
| Elite | Yes | No | Web scraping, ad verification, SERP tracking |
Proxy Types by IP Source
Beyond function, proxies differ by where their IP addresses come from. This distinction has the biggest impact on success rates, detection risk, and cost. For a deep comparison, see our guide on residential vs datacenter vs mobile proxies.
Residential Proxies
Residential proxies use IP addresses assigned by Internet Service Providers (ISPs) to real homes and devices. Because these IPs belong to actual users, websites treat them as legitimate traffic. This makes residential proxies the best choice for tasks where detection is a concern: large-scale scraping, SERP tracking, social media automation, and sneaker copping.
ProxyHat's residential proxy network spans 195+ countries with millions of IPs. Requests route through real consumer devices, making them virtually indistinguishable from regular users.
Datacenter Proxies
Datacenter proxies use IPs from cloud hosting providers (AWS, GCP, OVH, etc.). They are fast and cheap but easy to detect — websites can identify datacenter IP ranges and block them. Best for non-sensitive tasks, API access, and targets with minimal anti-bot protection.
Mobile Proxies
Mobile proxies route traffic through 3G/4G/5G connections from mobile carriers. They carry the highest trust level because mobile carrier IPs are shared by thousands of real users via CGNAT (Carrier-Grade NAT). Blocking a mobile IP risks blocking thousands of legitimate users, so websites rarely do it. Ideal for social media management, app testing, and highly protected targets.
ISP Proxies
ISP proxies combine the speed of datacenter hosting with the trust of residential IPs. They are static IPs registered to an ISP but hosted in a datacenter. Good for tasks requiring consistent IPs with lower detection risk than pure datacenter proxies.
| IP Source | Speed | Detection Risk | Cost | Best For |
|---|---|---|---|---|
| Residential | Medium | Very Low | Medium | Scraping, SERP tracking, geo-targeting |
| Datacenter | Very Fast | High | Low | APIs, low-protection targets |
| Mobile | Variable | Lowest | High | Social media, app testing |
| ISP | Fast | Low | Medium-High | Persistent sessions, account management |
Common Proxy Use Cases
Web Scraping and Data Collection
Proxies are essential for web scraping at scale. Without proxies, target websites quickly detect and block repeated requests from a single IP. Rotating residential proxies distribute requests across thousands of IPs, keeping success rates above 95%. For a practical implementation guide, see how to scrape without getting blocked.
SERP Tracking and SEO Monitoring
Search engines show different results based on location. SEO professionals use proxies to check rankings from any city or country accurately. Residential proxies are critical here because Google aggressively blocks datacenter IPs. Our SERP scraping guide walks through the implementation in detail.
Ad Verification
Advertisers use proxies to verify their ads appear correctly across regions and devices. Residential proxies ensure that ad platforms show real ads rather than detecting verification bots and serving clean content.
Geo-Restricted Content Access
Proxies let you access content limited to specific countries — streaming catalogs, localized pricing, region-locked APIs. By choosing a proxy in the target country, your request appears to originate from that location.
Brand Protection and Price Monitoring
E-commerce companies use proxies to monitor competitor pricing, detect counterfeit listings, and verify MAP (Minimum Advertised Price) compliance across markets.
Security and Access Control
Organizations deploy forward proxies to filter outbound traffic, enforce acceptable-use policies, and prevent data exfiltration. Reverse proxies protect web applications from DDoS attacks and vulnerability scanning.
Proxy Protocols: HTTP, HTTPS, and SOCKS5
The protocol determines how your client communicates with the proxy server. Each has different capabilities.
HTTP Proxy
HTTP proxies handle HTTP traffic. They can read and modify request headers, cache responses, and filter content. They understand the HTTP protocol natively, which allows for features like header injection (useful for geo-targeting parameters). Most web scraping uses HTTP proxies.
HTTPS Proxy (HTTP CONNECT)
For encrypted traffic, HTTP proxies use the CONNECT method to establish a TCP tunnel. The proxy cannot read the encrypted content — it simply relays bytes between client and target. This is the standard for HTTPS web scraping.
SOCKS5 Proxy
SOCKS5 is a lower-level protocol that works with any type of traffic — HTTP, HTTPS, FTP, SMTP, or raw TCP/UDP connections. It does not interpret the traffic, making it more versatile but less feature-rich than HTTP proxies. SOCKS5 also supports UDP (useful for DNS lookups and gaming) and authentication.
| Feature | HTTP Proxy | HTTPS (CONNECT) | SOCKS5 |
|---|---|---|---|
| Traffic types | HTTP only | Any (tunneled) | Any (TCP/UDP) |
| Header modification | Yes | No | No |
| Encryption awareness | No | Tunnel only | No |
| UDP support | No | No | Yes |
| Use with browsers | Yes | Yes | Yes |
| ProxyHat port | 8080 | 8080 | 1080 |
How to Use a Proxy Server: Code Examples
Here is how to route HTTP requests through a proxy in the three most popular languages for web scraping. All examples use ProxyHat's gateway.
Python
Using the ProxyHat Python SDK or the standard requests library:
# Using the ProxyHat Python SDK
from proxyhat import ProxyHat
client = ProxyHat(
username="USERNAME",
password="PASSWORD"
)
# Rotating residential proxy
response = client.get("https://httpbin.org/ip")
print(response.json())
# Geo-targeted request (US)
response = client.get(
"https://httpbin.org/ip",
country="US"
)
print(response.json())
# Using requests with proxy URL directly
import requests
proxies = {
"http": "http://USERNAME:PASSWORD@gate.proxyhat.com:8080",
"https": "http://USERNAME:PASSWORD@gate.proxyhat.com:8080",
}
response = requests.get("https://httpbin.org/ip", proxies=proxies)
print(response.json())
For a complete walkthrough, read Using Proxies in Python.
Node.js
Using the ProxyHat Node.js SDK or axios with https-proxy-agent:
// Using the ProxyHat Node.js SDK
import { ProxyHat } from '@proxyhat/sdk';
const client = new ProxyHat({
username: 'USERNAME',
password: 'PASSWORD',
});
// Rotating residential proxy
const response = await client.get('https://httpbin.org/ip');
console.log(response.data);
// Geo-targeted request (Germany)
const deResponse = await client.get('https://httpbin.org/ip', {
country: 'DE',
});
console.log(deResponse.data);
// Using axios with proxy agent
import axios from 'axios';
import { HttpsProxyAgent } from 'https-proxy-agent';
const agent = new HttpsProxyAgent(
'http://USERNAME:PASSWORD@gate.proxyhat.com:8080'
);
const response = await axios.get('https://httpbin.org/ip', {
httpsAgent: agent,
});
console.log(response.data);
For the full setup guide, see Using Proxies in Node.js.
Go
Using the ProxyHat Go SDK or the standard library:
// Using the ProxyHat Go SDK
package main
import (
"fmt"
"github.com/ProxyHatCom/go-sdk/proxyhat"
)
func main() {
client := proxyhat.NewClient(
"USERNAME",
"PASSWORD",
)
// Rotating residential proxy
resp, err := client.Get("https://httpbin.org/ip")
if err != nil {
panic(err)
}
fmt.Println(string(resp.Body))
// Geo-targeted request (Japan)
resp, err = client.Get("https://httpbin.org/ip",
proxyhat.WithCountry("JP"),
)
if err != nil {
panic(err)
}
fmt.Println(string(resp.Body))
}
// Using the standard library
package main
import (
"fmt"
"io"
"net/http"
"net/url"
)
func main() {
proxyURL, _ := url.Parse("http://USERNAME:PASSWORD@gate.proxyhat.com:8080")
client := &http.Client{
Transport: &http.Transport{
Proxy: http.ProxyURL(proxyURL),
},
}
resp, err := client.Get("https://httpbin.org/ip")
if err != nil {
panic(err)
}
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
Full implementation details are in Using Proxies in Go.
cURL
For quick testing from the command line:
# HTTP proxy
curl -x http://USERNAME:PASSWORD@gate.proxyhat.com:8080 https://httpbin.org/ip
# SOCKS5 proxy
curl -x socks5://USERNAME:PASSWORD@gate.proxyhat.com:1080 https://httpbin.org/ip
# With geo-targeting (US IP)
curl -x http://USERNAME-country-US:PASSWORD@gate.proxyhat.com:8080 https://httpbin.org/ip
Proxy vs VPN: Key Differences
Proxies and VPNs both mask your IP address, but they work differently and serve different purposes. Here is what separates them.
| Feature | Proxy Server | VPN |
|---|---|---|
| Scope | Per-application or per-request | All device traffic |
| Encryption | Optional (depends on protocol) | Always encrypted |
| Speed | Faster (less overhead) | Slower (encryption overhead) |
| IP rotation | Yes (rotating proxies) | No (single server IP) |
| Concurrent IPs | Thousands simultaneously | One at a time |
| Best for | Scraping, automation, data collection | Personal privacy, secure browsing |
| Scalability | Designed for scale | Single-user oriented |
When to use a proxy: You need to make thousands or millions of requests, rotate IPs, target specific geolocations, or integrate programmatically into your application. Proxies are tools for automation and data collection.
When to use a VPN: You want to encrypt all traffic from your device for personal privacy or to access restricted content as a single user. VPNs are tools for individual security.
How to Choose the Right Proxy
Selecting the right proxy depends on your specific use case, budget, and technical requirements. Here is a decision framework.
1. Define Your Use Case
Start with what you are trying to accomplish:
- Web scraping — rotating residential proxies with broad geo-coverage
- SERP monitoring — residential proxies with city-level targeting
- Social media management — mobile or residential proxies with sticky sessions
- Price monitoring — residential proxies with multiple country support
- API access — datacenter proxies (if the API does not block them)
2. Evaluate Key Factors
- Pool size — larger IP pools reduce the chance of encountering a previously flagged IP
- Geo-coverage — ensure the provider covers the countries you need
- Rotation options — rotating (new IP per request) vs sticky sessions (same IP for a duration)
- Protocol support — HTTP/HTTPS for most tasks, SOCKS5 for non-HTTP protocols
- Authentication — username/password vs IP whitelisting
- Concurrency limits — how many simultaneous connections you can maintain
- Bandwidth pricing — per GB vs unlimited plans
3. Test Before Committing
Run real-world tests against your actual targets. Metrics that matter:
- Success rate — percentage of requests that return a valid response (aim for 95%+)
- Response time — average latency (varies by proxy type and target distance)
- IP diversity — unique IPs seen over a sample of requests
- Ban rate — how often you get blocked or CAPTCHAed
ProxyHat offers pay-as-you-go pricing so you can test against your specific targets without a long-term commitment.






