I know curl-fu.
The HTTP protocol allows a client to specify a time condition for the document it requests. It is If-Modified-Since or If-Unmodified-Since.
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 https://robdurdle.com/foo/bar/image.png curl --silent --head https://robdurdle.com/foo/help.html
OR
curl -I http://RobDurdle.com/foo/bar/image.png curl -I http://RobDurdle.com/foo/help.html
In this example, note down the Last-Modified headers in the response to this HEAD request:
$ curl -I http://www.RobDurdle.com/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 Last-Modified: Tue, 11 Dec 2012 10:10:23 GMT Cache-Control: max-age=299, must-revalidate Vary: Cookie X-Pingback: http://www.robdurdle.com/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://RobDurdle.com/foo/bar/image.png
$ curl -I --header 'If-Modified-Since: Tue, 11 Dec 2012 10:10:24 GMT' http://RobDurdle.com/faq/
Sample outputs:
HTTP/1.1 304 Not Modified Server: nginx Date: Tue, 11 Dec 2012 10:12:11 GMT Connection: keep-alive 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.
This entry was posted on December 12, 2012 by Durdle. It was filed under Idiotic Crap and was tagged with Greenwich Mean Time, Hypertext Transfer Protocol, Internet media type, List of HTTP header fields, List of HTTP status codes, UTF-8, Web cache, Web server.
Leave a Reply