43

Is there a shell command to see the headers of a HTTP request?

For example, I would like to know what the headers retrieved from www.example.com/test.php are

How can I do this?

0

6 Answers 6

54

In order to retrieve only the header, give this a try:

curl -I http://www.example.com/test.php 

From the man page:

-I/--head
(HTTP/FTP/FILE) Fetch the HTTP-header only! HTTP-servers feature the command HEAD which this uses to get nothing but the header of a document. When used on a FTP or FILE file, curl displays the file size and last modification time only.

1
  • Also, -D <file> will save the headers to a file. Commented Mar 20, 2011 at 16:02
11

Use wget for instance

wget -O - -o /dev/null --save-headers www.example.com/test.php 
4
  • yes, but i don't want to save the page on my pc.....i only want to see the headers Commented Mar 20, 2011 at 10:22
  • 2
    You won't save it with this command Commented Mar 20, 2011 at 11:01
  • Yup, you're just filling /dev/null :p -O - writes the headers to the stdout ("the console") Commented Mar 20, 2011 at 16:00
  • 1
    Command outputs headers and full page to stdout. (Ubuntu 16.04, wget 1.17.1) Commented Aug 22, 2018 at 8:42
8

You can do that with curl:

curl -i 'http://example.com/' 

Result:

HTTP/1.0 302 Found Location: http://www.iana.org/domains/example/ Server: BigIP Connection: Keep-Alive Content-Length: 0 

(for some reason, IANA decided to redirect example.com, result: no body)

curls manual page about the -i option:

-i/--include

(HTTP) Include the HTTP-header in the output. The HTTP-header includes things like server-name, date of the document, HTTP-version and more...

6

Or you can use HEAD http://www.example.com. The result is very similar to that produced by curl -i 'http://example.com/' although it seems to return more headers.

200 OK Connection: close Date: Sun, 20 Mar 2011 19:08:58 GMT Server: Apache/2.2.3 (CentOS) Content-Length: 2945 Content-Type: text/html; charset=UTF-8 Last-Modified: Wed, 09 Feb 2011 17:13:15 GMT Client-Date: Sun, 20 Mar 2011 19:09:08 GMT Client-Peer: 192.0.32.8:80 Client-Response-Num: 1
5

You can see them with curl.

3

Use curl --include to include the response-headers in the top of the response-body.

or curl --verbose to see it all including SSL certificate exchanging the handshake (plus other debug information)

if the request itself and neither the response-body are not of you concern, just use curl --head

for example curl --head --no-check-certificate --url "https://example.com".

You can download gnu curl already pre-compiled for the most platforms. curl is quite the useful too, especially if you would like to pipe or redirect the result inside a script.
*for example: https://superuser.com/a/1007898/429721

You must log in to answer this question.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.