Sponsored Content
Top Forums UNIX for Dummies Questions & Answers How to send a Head Http request from command line Post 302181383 by cbkihong on Wednesday 2nd of April 2008 10:20:15 PM
Old 04-02-2008
If you don't mind installing a Perl module Net::HTTP, you can do that very easily. The write_request() does not return until a response can be received.

Code:
$ time perl -MNet::HTTP -e '$h = Net::HTTP->new(Host => "www.sun.com"); $h->write_request(HEAD => "/")'

real    0m2.746s
user    0m0.072s
sys     0m0.012s

The corresponding packet dump to show a HEAD request was actually sent:

Code:
[root@bernardchan ~]# tcpdump -s 0 -A -i eth0 tcp and port 80
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
10:15:30.925197 IP bernardchan.41865 > 72.5.124.61.http: S 2605374828:2605374828(0) win 5840 <mss 1460,sackOK,timestamp 482811 0,nop,wscale 2>
E..<..@.@.*|..
.H.|=...P.J.l........&..........
..].........
10:15:31.120470 IP 72.5.124.61.http > bernardchan.41865: S 3988518783:3988518783(0) ack 2605374829 win 33304 <nop,nop,timestamp 1576677510 482811,mss 1460,nop,wscale 0,nop,nop,sackOK>
E..@.=@.1...H.|=..
..P.......J.m....5......
].0...].............
10:15:31.120547 IP bernardchan.41865 > 72.5.124.61.http: . ack 1 win 1460 <nop,nop,timestamp 482860 1576677510>
E..4..@.@.*...
.H.|=...P.J.m...............
..^,].0.
10:15:31.121101 IP bernardchan.41865 > 72.5.124.61.http: P 1:58(57) ack 1 win 1460 <nop,nop,timestamp 482860 1576677510>
E..m..@.@.*I..
.H.|=...P.J.m...............
..^,].0.HEAD / HTTP/1.1
Connection: close
Host: www.sun.com


10:15:31.121423 IP bernardchan.41865 > 72.5.124.61.http: F 58:58(0) ack 1 win 1460 <nop,nop,timestamp 482860 1576677510>
E..4..@.@.*...
.H.|=...P.J.................
..^,].0.
10:15:31.315358 IP 72.5.124.61.http > bernardchan.41865: . ack 58 win 33304 <nop,nop,timestamp 1576677530 482860>
E..4.>@.1...H.|=..
..P.......J......v,.....
].0...^,
10:15:31.315474 IP 72.5.124.61.http > bernardchan.41865: . ack 59 win 33304 <nop,nop,timestamp 1576677530 482860>
E..4.?@.1...H.|=..
..P.......J......v+.....
].0...^,
10:15:31.345593 IP 72.5.124.61.http > bernardchan.41865: F 517:517(0) ack 59 win 33304 <nop,nop,timestamp 1576677533 482860>
E..4.A@.1...H.|=..
..P.......J......t#.....
].0...^,
10:15:31.345644 IP bernardchan.41865 > 72.5.124.61.http: R 2605374887:2605374887(0) win 0
E..(..@.@.....
.H.|=...P.J......P....l..
10:15:31.348082 IP 72.5.124.61.http > bernardchan.41865: P 1:517(516) ack 59 win 33304 <nop,nop,timestamp 1576677533 482860>
E..8.@@.1...H.|=..
..P.......J.............
].0...^,HTTP/1.1 200 OK
Server: Sun-Java-System-Web-Server/6.1
Date: Thu, 03 Apr 2008 02:15:32 GMT
Content-type: text/html;charset=UTF-8
P3p: policyref="http://www.sun.com/p3p/Sun_P3P_Policy.xml", CP="CAO DSP COR CUR ADMa DEVa TAIa PSAa PSDa CONi TELi OUR  SAMi PUBi IND PHY ONL PUR COM NAV INT DEM CNT STA POL PRE GOV"
X-powered-by: Servlet/2.4,JSP/2.0
Connection: close
Set-cookie: Starload=star-fep5; Path=/
Set-cookie: JSESSIONID=12112cc14aabcdfffffffffe2641a9e183505; Path=/
Set-cookie: JROUTE=Pe4Y; Path=/


10:15:31.348114 IP bernardchan.41865 > 72.5.124.61.http: R 2605374887:2605374887(0) win 0
E..(..@.@.....
.H.|=...P.J......P....l..

 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Http request in Linux

Hi, i need a guide how to write a script which i can do a http request. Let say the request look like below; http://www.test.com?txid=1&type=service&server=linux I have a list of "txid" (in *.txt) and need to run all "txid" acordingly. So that mean, every transaction i have to refer "txid"... (7 Replies)
Discussion started by: malaysoul
7 Replies

2. Programming

http HEAD reuest

I have written a c socket programe which can send the http GET request.But it dont work for HEAD reuest.can anyone help me.I am connected to internet via a proxy and the port/ip in the programe are proxies ones -------------------------------------------------- #include <stdlib.h> #include... (3 Replies)
Discussion started by: chamaraHe
3 Replies

3. UNIX for Dummies Questions & Answers

http request forward

Hi, Maybe it's a stupid question, anyway here goes.. I have an Apache web server on Solaris box, let's say A, with a public ip and a web application on a Linux box, uhmmm B, on a private lan with a private ip. I want the people from outside to connect to the app, but its inside the lan,... (4 Replies)
Discussion started by: piltrafa
4 Replies

4. UNIX for Dummies Questions & Answers

HTTP request

Can anybody tell about http request processing in shell script..? (3 Replies)
Discussion started by: noufal
3 Replies

5. Shell Programming and Scripting

How to send XML data using HTTP Post Request

How to hit HTTP Post Request along with sending XML data to a Remote server through command line utility like wget (or anything else). (0 Replies)
Discussion started by: sandeep reddy
0 Replies

6. UNIX for Dummies Questions & Answers

cant make a http get request using wget

Hi all, Im trying to make an http get request to a web service from a linux machine like below and i get ERROR 500 wget http://10.1.21.236:8585/pns.asmx/Sen...&msgBody=werty 25018 $ --19:06:32-- http://10.1.21.236:8585/pns.asmx/Sen...erName=serverA Connecting to 10.1.21.236:8585...... (1 Reply)
Discussion started by: elthox
1 Replies

7. UNIX for Advanced & Expert Users

Issue in Curl to send http POST request with attachment/multipart

Hi, I am using curl to hit a url using http in solaris 10 using commandline, I want to transfer an attachment(using multipart curl -F) also as a part of the request. If anyone has used kindly help me with the syntax. I am using below command: Code: /usr/local/bin/curl -v... (1 Reply)
Discussion started by: manishmaha
1 Replies

8. Programming

C++ http GET request using sockets

Hello I am trying to communicate with a server that is ready to accept HTTP GET requests and send back data per the request. However, I have very little experience in socket programming and I don't really know how to debug this. Googling on the web hasn't yielded much, except people saying I... (2 Replies)
Discussion started by: flagman5
2 Replies

9. Shell Programming and Scripting

http request

I am running a website but I still have problems with the "service temporarily unavailable error". I want to make a simple check if the website is up and running. Does anybody has an idea how to do it? (the site is password protected, so you have to add a user and pwd before logging in). ... (2 Replies)
Discussion started by: jurgen
2 Replies

10. Homework & Coursework Questions

How to display certain line of file only using head or tail in 1 command?

First month learning about the Linux terminal and it has been a challenge yet fun so far. We're learning by using a gameshell. I'm trying to display a certain line ( only allowed 1 command ) from a file only using the head or tail. I'm pretty about this answer: head -23 history.txt | tail -1... (1 Reply)
Discussion started by: forzatekk
1 Replies
CURLOPT_CUSTOMREQUEST(3)				     curl_easy_setopt options					  CURLOPT_CUSTOMREQUEST(3)

NAME
CURLOPT_CUSTOMREQUEST - custom string for request SYNOPSIS
#include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_CUSTOMREQUEST, char *request); DESCRIPTION
Pass a pointer to a zero terminated string as parameter. When you change the request method by setting CURLOPT_CUSTOMREQUEST(3) to something, you don't actually change how libcurl behaves or acts in regards to the particular request method, it will only change the actual string sent in the request. Restore to the internal default by setting this to NULL. This option can be used to specify the request: HTTP Instead of GET or HEAD when performing HTTP based requests. This is particularly useful, for example, for performing a HTTP DELETE request. For example: When you tell libcurl to do a HEAD request, but then specify a GET though a custom request libcurl will still act as if it sent a HEAD. To switch to a proper HEAD use CURLOPT_NOBODY(3), to switch to a proper POST use CURLOPT_POST(3) or CURLOPT_POSTFIELDS(3) and to switch to a proper GET use CURLOPT_HTTPGET(3). Many people have wrongly used this option to replace the entire request with their own, including multiple headers and POST con- tents. While that might work in many cases, it will cause libcurl to send invalid requests and it could possibly confuse the remote server badly. Use CURLOPT_POST(3) and CURLOPT_POSTFIELDS(3) to set POST data. Use CURLOPT_HTTPHEADER(3) to replace or extend the set of headers sent by libcurl. Use CURLOPT_HTTP_VERSION(3) to change HTTP version. FTP Instead of LIST and NLST when performing FTP directory listings. IMAP Instead of LIST when issuing IMAP based requests. POP3 Instead of LIST and RETR when issuing POP3 based requests. For example: When you tell libcurl to use a custom request it will behave like a LIST or RETR command was sent where it expects data to be returned by the server. As such CURLOPT_NOBODY(3) should be used when specifying commands such as DELE and NOOP for example. SMTP Instead of a HELP or VRFY when issuing SMTP based requests. For example: Normally a multiline response is returned which can be used, in conjunction with CURLOPT_MAIL_RCPT(3), to specify an EXPN request. If the CURLOPT_NOBODY(3) option is specified then the request can be used to issue NOOP and RSET commands. The application does not have to keep the string around after setting this option. DEFAULT
NULL PROTOCOLS
HTTP, FTP, IMAP, POP3 and SMTP EXAMPLE
TODO AVAILABILITY
IMAP is supported since 7.30.0, POP3 since 7.26.0 and SMTP since 7.34.0. RETURN VALUE
Returns CURLE_OK if the option is supported, CURLE_UNKNOWN_OPTION if not, or CURLE_OUT_OF_MEMORY if there was insufficient heap space. SEE ALSO
CURLOPT_HTTPHEADER(3), CURLOPT_NOBODY(3), libcurl 7.54.0 December 21, 2016 CURLOPT_CUSTOMREQUEST(3)
All times are GMT -4. The time now is 06:37 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy