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.
December 12, 2012 | Categories: Idiotic Crap | Tags: 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 comment






