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
Net::HTTP::NB(3pm)					User Contributed Perl Documentation					Net::HTTP::NB(3pm)

NAME
Net::HTTP::NB - Non-blocking HTTP client SYNOPSIS
use Net::HTTP::NB; my $s = Net::HTTP::NB->new(Host => "www.perl.com") || die $@; $s->write_request(GET => "/"); use IO::Select; my $sel = IO::Select->new($s); READ_HEADER: { die "Header timeout" unless $sel->can_read(10); my($code, $mess, %h) = $s->read_response_headers; redo READ_HEADER unless $code; } while(1) { die "Body timeout" unless $sel->can_read(10); my $buf; my $n = $s->read_entity_body($buf, 1024); last unless $n; print $buf; } DESCRIPTION
Same interface as "Net::HTTP" but it will never try multiple reads when the read_response_headers() or read_entity_body() methods are invoked. This make it possible to multiplex multiple Net::HTTP::NB using select without risk blocking. If read_response_headers() did not see enough data to complete the headers an empty list is returned. If read_entity_body() did not see new entity data in its read the value -1 is returned. SEE ALSO
Net::HTTP COPYRIGHT
Copyright 2001 Gisle Aas. This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself. perl v5.14.2 2012-02-15 Net::HTTP::NB(3pm)
All times are GMT -4. The time now is 06:00 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy