curl: If-Modified-Since Command Linux / Unix Example

by on December 11, 2012 · 1 comment· LAST UPDATED December 11, 2012

in , ,

HTTP protocol allows a client to specify a time condition for the document it requests. It is If-Modified-Since or If-Unmodified-Since. How do I use curl Unix/Linux command line option to test a server with If-Modified-Since condition and validate Last-Modified settings?

Tutorial details
DifficultyEasy (rss)
Root privilegesNo
Requirementscurl
Estimated completion timeN/A

You can use curl command to see if a copy (http resources such as text/html or image/png) that they hold is still valid. However, this will only work if response has a Last-Modified header. You can send a Last-Modified header using web server or your web application.

Step #1: Find out if response has a Last-Modified header

Type the following curl command:

 
curl --silent --head http://server1.cyberciti.biz/foo/bar/image.png
curl --silent --head http://server1.cyberciti.biz/foo/help.html
 

OR

 
curl -I http://server1.cyberciti.biz/foo/bar/image.png
curl -I  http://server1.cyberciti.biz/foo/help.html
 

In this example, note down the Last-Modified headers in the response to this HEAD request:
$ curl -I http://www.cyberciti.biz/faq/
Sample outputs:

HTTP/1.1 200 OK
Server: nginx
Date: Tue, 11 Dec 2012 10:10:24 GMT
Content-Type: text/html; charset=UTF-8
Connection: keep-alive
X-Whom: l2-com-cyber
Last-Modified: Tue, 11 Dec 2012 10:10:23 GMT
Cache-Control: max-age=299, must-revalidate
Vary: Cookie
X-Pingback: http://www.cyberciti.biz/faq/xmlrpc.php
X-Galaxy: Andromeda-1
Vary: Accept-Encoding

The syntax is as follows to send If-Modified-Since header using the curl command line:
$ curl -I --header 'If-Modified-Since: DATE-FORMAT-HERE' http://server1.cyberciti.biz/foo/bar/image.png
$ curl -I --header 'If-Modified-Since: Tue, 11 Dec 2012 10:10:24 GMT' http://www.cyberciti.biz/faq/

Sample outputs:

HTTP/1.1 304 Not Modified
Server: nginx
Date: Tue, 11 Dec 2012 10:12:11 GMT
Connection: keep-alive
X-Whom: l2-com-cyber
Vary: Cookie
Last-Modified: Tue, 11 Dec 2012 10:10:23 GMT
X-Galaxy: Andromeda-1
Vary: Accept-Encoding

The resource sends a 304 Not Modified response, indicating that it supports Last-Modified validation.

TwitterFacebookGoogle+PDF versionFound an error/typo on this page? Help us!

{ 1 comment… read it below or add one }

1 shiv January 16, 2014 at 4:41 pm

How can you substitute the date part with a shell variable .. like this –

curl –silent -I –header ‘If-Modified-Since: “$mod”‘

Thanks

Reply

Leave a Comment

Tagged as: ,

Previous Faq:

Next Faq: