How do I send a header to my Web server (such as Nginx / Lighttpd / Apache / ISS) on a Apple OS X or Unix or Linux based system using a curl command line option for testing and debugging my web apps or server nodes behind a load balancer?
Tutorial details | |
---|---|
Difficulty | Easy (rss) |
Root privileges | No |
Requirements | curl command |
Time | N/A |
curl -H 'YOUR-EXTRA-HEADER-HERE' apache-server-ip curl -H 'YOUR-EXTRA-HEADER-1-HERE' -H 'YOUR-EXTRA-HEADER-2-HERE' www.cyberciti.biz
For example, send Host header to www.cyberciti.biz to get HTML response from 75.126.153.206:80, run:
curl -H 'Host: www.cyberciti.biz' 75.126.153.206:80
This is also useful when 75.126.153.206 has multiple virtual host set. The default is not to response anything when virtual host header is not sent:
$ curl -I 75.126.153.206:80
Sample outputs:
HTTP/1.1 500 Internal Server Error Server: nginx Date: Wed, 31 Oct 2012 18:51:03 GMT Content-Type: text/html Connection: keep-alive X-Whom: l1-biz-cyber
Now, sent www.cyberciti.biz as Host header:
$ curl -I -H 'Host: www.cyberciti.biz' 75.126.153.206:80
Sample outputs:
HTTP/1.1 200 OK Server: nginx Date: Wed, 31 Oct 2012 18:52:20 GMT Content-Type: text/html Connection: keep-alive X-Whom: l2-com-cyber Vary: Cookie Last-Modified: Wed, 31 Oct 2012 18:48:58 GMT Cache-Control: max-age=98, must-revalidate X-Galaxy: Andromeda-1 X-Origin-Type: DynamicViaDAL
You can use this command to test Apache server node behind a load balancer (only work with your own VLAN/LAN setup):
## see if 192.168.1.11:95 apache node #1 is working or not ## curl -I --header 'Host: www.cyberciti.biz' 'http://192.168.1.11:95/'
Sample outputs:
HTTP/1.1 200 OK
X-Whom: l1-com-cyber
Vary: Cookie
Last-Modified: Wed, 31 Oct 2012 18:54:00 GMT
Cache-Control: max-age=77, must-revalidate
Content-type: text/html
Date: Wed, 31 Oct 2012 18:57:43 GMT
Server: lighttpd
This option can be used multiple times to add/replace/remove multiple headers:
curl www.cyberciti.biz \ -H "Accept-Language: en" \ -H "Host www.cyberciti.biz" \ -H "User-Agent: curl"
References
See curl command man page for more options:
$ man curl
🐧 3 comments so far... add one ↓
Category | List of Unix and Linux commands |
---|---|
File Management | cat |
Firewall | Alpine Awall • CentOS 8 • OpenSUSE • RHEL 8 • Ubuntu 16.04 • Ubuntu 18.04 • Ubuntu 20.04 |
Network Utilities | dig • host • ip • nmap |
OpenVPN | CentOS 7 • CentOS 8 • Debian 10 • Debian 8/9 • Ubuntu 18.04 • Ubuntu 20.04 |
Package Manager | apk • apt |
Processes Management | bg • chroot • cron • disown • fg • jobs • killall • kill • pidof • pstree • pwdx • time |
Searching | grep • whereis • which |
User Information | groups • id • lastcomm • last • lid/libuser-lid • logname • members • users • whoami • who • w |
WireGuard VPN | Alpine • CentOS 8 • Debian 10 • Firewall • Ubuntu 20.04 |
Plesase correct the url spelling “-sedning”
Thanks for the heads up!
HEDER should be HEADER
:) :)