cURL vs Wget: Key Differences Explained
curl and wget are both popular terminal tools but often used for different tasks - let's take a look at the differences.
The User-Agent header is one of the essential headers, which identifies the request sender's device with various details, such as the device type, operating system, browser name, and version. Missing this header or misconfiguring it can lead to request blocking.
To change the cURL User-Agent, we can use the -A
cURL option:
curl -A "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/113.0" https://httpbin.dev/headers
The response will include the modified cURL User-Agent:
{
"headers": {
"Accept": [
"*/*"
],
"Accept-Encoding": [
"gzip"
],
"Host": [
"httpbin.dev"
],
"User-Agent": [
"Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/113.0"
]
}
}
Another alternative to setting User-Agent with cURL is passing through as a header using the -H
cURL option:
curl -H "User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/113.0" https://httpbin.dev/headers
Finally, we can rotate the cURL User-Agent using bash:
user_agents=(
"Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/113.0"
"Mozilla/5.0 (X11; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/113.0"
"Mozilla/5.0 (Windows NT 6.1; rv:109.0) Gecko/20100101 Firefox/113.0"
)
# get a random user agent
get_random_user_agent() {
local random_index=$((RANDOM % ${#user_agents[@]}))
echo "${user_agents[random_index]}"
}
user_agent=$(get_random_user_agent)
curl -A "$user_agent" https://httpbin.dev/headers
For more details on cURL, refer to our dedicated guide.
This knowledgebase is provided by Scrapfly data APIs, check us out! 👇