curl:If-Modified-Since命令Linux/Unix示例

时间:2020-01-09 10:42:12  来源:igfitidea点击:

HTTP协议允许客户端为其请求的文档指定时间条件。
它是If-Modified-Since或者If-Unmodified-Since
如何使用curl Unix/Linux命令行选项来测试具有If-Modified-Since条件的服务器并验证" Last-Modified"设置?

您可以使用curl命令查看它们所持有的副本(http资源,例如text/html或者image/png)是否仍然有效。
但是,这仅在响应具有Last-Modified标头的情况下有效。
您可以使用Web服务器或者Web应用程序发送Last-Modified标头。

步骤1:找出回应中是否包含Last-Modified标头

执行以下curl命令:

curl --silent --head http://server1.theitroad.local/foo/bar/image.png
curl --silent --head http://server1.theitroad.local/foo/help.html

或者

curl -I http://server1.theitroad.local/foo/bar/image.png
curl -I  http://server1.theitroad.local/foo/help.html

在此示例中,记下对此HEAD请求的响应中的Last-Modified标头:

$ curl -I http://www.theitroad.local/faq/

输出示例:

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.theitroad.local/faq/xmlrpc.php
X-Galaxy: Andromeda-1
Vary: Accept-Encoding

使用curl命令行发送If-Modified-Since标头的语法如下:

$ curl -I --header 'If-Modified-Since: DATE-FORMAT-HERE' http://server1.theitroad.local/foo/bar/image.png
$ curl -I --header 'If-Modified-Since: Tue, 11 Dec 2012 10:10:24 GMT' http://www.theitroad.local/faq/

输出示例:

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

资源发送304 Not Modified响应,指示它支持Last-Modified验证。