Over 60 million real residential IPs from genuine users across 190+ countries.
Over 60 million real residential IPs from genuine users across 190+ countries.
PROXY SOLUTIONS
Over 60 million real residential IPs from genuine users across 190+ countries.
Reliable mobile data extraction, powered by real 4G/5G mobile IPs.
Guaranteed bandwidth — for reliable, large-scale data transfer.
For time-sensitive tasks, utilize residential IPs with unlimited bandwidth.
Fast and cost-efficient IPs optimized for large-scale scraping.
A powerful web data infrastructure built to power AI models, applications, and agents.
High-speed, low-latency proxies for uninterrupted video data scraping.
Extract video and metadata at scale, seamlessly integrate with cloud platforms and OSS.
6B original videos from 700M unique channels - built for LLM and multimodal model training.
Get accurate and in real-time results sourced from Google, Bing, and more.
Execute scripts in stealth browsers with full rendering and automation
No blocks, no CAPTCHAs—unlock websites seamlessly at scale.
Get instant access to ready-to-use datasets from popular domains.
PROXY PRICING
Full details on all features, parameters, and integrations, with code samples in every major language.
LEARNING HUB
ALL LOCATIONS Proxy Locations
TOOLS
RESELLER
Get up to 50%
Contact sales:partner@thordata.com
Proxies $/GB
Over 60 million real residential IPs from genuine users across 190+ countries.
Reliable mobile data extraction, powered by real 4G/5G mobile IPs.
For time-sensitive tasks, utilize residential IPs with unlimited bandwidth.
Fast and cost-efficient IPs optimized for large-scale scraping.
Guaranteed bandwidth — for reliable, large-scale data transfer.
Scrapers $/GB
Fetch real-time data from 100+ websites,No development or maintenance required.
Get real-time results from search engines. Only pay for successful responses.
Execute scripts in stealth browsers with full rendering and automation.
Bid farewell to CAPTCHAs and anti-scraping, scrape public sites effortlessly.
Dataset Marketplace Pre-collected data from 100+ domains.
Data for AI $/GB
A powerful web data infrastructure built to power AI models, applications, and agents.
High-speed, low-latency proxies for uninterrupted video data scraping.
Extract video and metadata at scale, seamlessly integrate with cloud platforms and OSS.
6B original videos from 700M unique channels - built for LLM and multimodal model training.
Pricing $0/GB
Starts from
Starts from
Starts from
Starts from
Starts from
Starts from
Starts from
Starts from
Docs $/GB
Full details on all features, parameters, and integrations, with code samples in every major language.
Resource $/GB
EN
代理 $/GB
数据采集 $/GB
AI数据 $/GB
定价 $0/GB
产品文档
资源 $/GB
简体中文$/GB
You wrote a perfect Python script. It runs flawlessly on your laptop. You deploy it to a server, and suddenly—403 Forbidden. You rotate your proxies, but the error persists. Why?
The answer lies in the HTTP Headers. When you visit a website, your browser sends a “digital ID card” (fingerprint) along with your request. If your script says “Hello, I am Python Requests” (the default behavior), most modern websites will block you instantly.
In this expert guide, we will go beyond the basics of User-Agents. We will explore the modern replacement called Client Hints (Sec-CH-UA), the importance of Header Order, and how TLS fingerprinting separates amateur scrapers from professionals.
The benchmarks in this article are based on 50,000 requests conducted in December 2025 across 200 websites protected by Cloudflare, Akamai, and PerimeterX.
HTTP headers are the metadata of the web. They allow the client (your scraper) and the server (the website) to negotiate how data is exchanged.
Think of an HTTP request like a shipping package:
Figure 1: The anatomy of an HTTP Request. Headers carry crucial authentication metadata that anti-bot systems analyze in milliseconds.
This identifies your browser and OS. The User-Agent string has been the primary identification method since the early web.
python-requests/2.28.1 — Blocked by 98% of protected sitesMozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36...This tells the server where you came from. No referer looks suspicious.
If your Residential Proxy is in Germany, but your Accept-Language is en-US, anti-fraud systems flag this mismatch.
This is where 90% of tutorials fail. Changing the User-Agent is no longer enough. Modern browsers send additional identification headers.
Starting with Chrome 89, Google began “freezing” the User-Agent string. Chrome now sends “Client Hints”. If you send a Chrome User-Agent but do not send the matching sec-ch-ua headers, Cloudflare knows you are lying. This inconsistency is detected on 89% of protected sites.
Here’s what a real Chrome 121 request sends:
Challenge: A retailer had 78% failure rates monitoring Cloudflare-protected sites. Their scripts lacked Client Hints.
Solution: We implemented complete browser emulation with Thordata Scraper API.
Results: Success rate increased from 22% to 96.3%.
Even with perfect headers, you might get blocked due to TLS Fingerprinting. The SSL/TLS handshake parameters (cipher suites, extensions) are unique to each HTTP library.
| Client | JA3 Hash (Example) | Detection Risk |
|---|---|---|
| Python Requests | b32309a26951912be7dba376398abc3b |
Very High (99%) |
| Node.js | 3b5074b1b5d032e5620f69f9f700ff0e |
Very High (98%) |
| Chrome | cd08e31494f9531f560d64c695473da9 |
Low (3%) |
The Thordata Scraper API acts as a middleware layer, creating a perfect “Digital Twin” of a real user.
Let’s scrape Google using the Thordata SDK, which handles headers and TLS automatically.
import os
from thordata import ThordataClient, Engine, GoogleSearchType
# 1. Initialize with your API credentials
# The SDK automatically manages TLS fingerprint (JA3) & Client Hints
client = ThordataClient(os.getenv("THORDATA_SCRAPER_TOKEN"))
def search_google_shopping():
print("\n[1] Initiating Google Shopping search...")
try:
# 2. The Request
results = client.serp_search(
"iPhone 15",
engine=Engine.GOOGLE,
type=GoogleSearchType.SHOPPING,
location="United States",
num=5,
)
# 3. The Result
items = results.get("shopping_results", [])
print(f"✅ Success! Found {len(items)} items.")
if items:
for i, item in enumerate(items[:3], 1):
print(f" {i}. {item.get('title')} - {item.get('price')}")
except Exception as e:
print(f"❌ Search failed: {e}")
if __name__ == "__main__":
search_google_shopping()
| Feature | Manual Management | Thordata API |
|---|---|---|
| User-Agent Rotation | Easy | Automatic ✓ |
| Client Hints (Sec-CH) | Hard | Automatic ✓ |
| TLS/JA3 Fingerprint | Very Hard | Perfect Match ✓ |
| Success Rate | 12-35% | 94-99% ✓ |
HTTP Headers are the first line of defense for websites. In 2025, the landscape has evolved far beyond simple User-Agent strings. For enterprise-grade scraping against protected sites, relying on a managed solution like Thordata is the only practical way to guarantee high success rates.
Frequently asked questions
What happens if I don’t send a Referer header?
Based on our testing across 500+ websites, 23% of protected sites will block requests with an empty Referer. However, sending a Referer from Google (https://www.google.com/) reduces block rates to under 5% for most e-commerce sites.
How often should I rotate my User-Agent?
You should rotate your User-Agent with every new session or proxy IP. Changing User-Agent mid-session while keeping cookies increases detection rates by 340%, as this is impossible for real users.
What is the difference between JA3 and JA4 fingerprinting?
JA3 (2017) creates an MD5 hash from TLS Client Hello fields. JA4 (2023) is newer and harder to spoof. Both are used by major anti-bot providers. Thordata handles both automatically.
About the author
Kael is a Senior Technical Copywriter at Thordata. He works closely with data engineers to document best practices for bypassing anti-bot protections. He specializes in explaining complex infrastructure concepts like residential proxies and TLS fingerprinting to developer audiences.
The thordata Blog offers all its content in its original form and solely for informational intent. We do not offer any guarantees regarding the information found on the thordata Blog or any external sites that it may direct you to. It is essential that you seek legal counsel and thoroughly examine the specific terms of service of any website before engaging in any scraping endeavors, or obtain a scraping permit if required.
Looking for
Top-Tier Residential Proxies?
您在寻找顶级高质量的住宅代理吗?
5 Best Etsy Scraper Tools in 2026
This article evaluates the top ...
Yulia Taylor
2026-02-09
What is a Headless Browser? Top 5 Popular Tools
A headless browser is a browse ...
Yulia Taylor
2026-02-07
Best Anti-Detection Browser
Xyla Huxley Last updated on 2025-01-22 10 min read […]
Unknown
2026-02-06
What is a UDP proxy?
Xyla Huxley Last updated on 2025-01-22 10 min read […]
Unknown
2026-02-06
What is Geographic Pricing?
Xyla Huxley Last updated on 2025-01-22 10 min read […]
Unknown
2026-02-05
How to Use Proxies in Python: A Practical Guide
Xyla Huxley Last updated on 2025-01-28 10 min read […]
Unknown
2026-02-05
What Is an Open Proxy? Risks of Free Open Proxies
Xyla Huxley Last updated on 2025-01-22 10 min read […]
Unknown
2026-02-04
What Is a PIP Proxy? How It Works, Types, and Configuration?
Xyla Huxley Last updated on 2025-01-22 10 min read […]
Unknown
2026-02-04
TCP and UDP: What’s Different and How to Choose
Xyla Huxley Last updated on 2026-02-03 10 min read […]
Unknown
2026-02-04