Exemple : en-têtes Expires dans les scripts
Ce script CGI Perl indique comment utiliser l'en-tête Expires dans les scripts à des fins de démonstration.
#!/usr/bin/perl use strict; use warnings; use CGI; use CGI::Util; use Date::Parse; my $q = new CGI; print $q->header(-type => "text/html", -status => 200, -expires => "+60s"); print "<html><body>\n<h1>Expires Test</h1>\n" . "<p>Date: ".scalar localtime()."</p>\n" . "<table>\n"; foreach my $var (sort keys %ENV) { next unless $var =~ /^HTTP_/; print "<tr><td>$var</td><td>$ENV{$var}</td></tr>\n"; } print "</table></body></html>\n"; exit 0;
Lorsque vous chargez le script sur un serveur Web CGI, une réponse similaire à celle-ci s'affiche :
Expires Test
Date: Fri Aug 3 17:02:08 2007
HTTP_ACCEPT | text/xml,application/xml,application/xhtml+xml,... |
HTTP_ACCEPT_CHARSET | ISO-8859-1,utf-8;q=0.7,*;q=0.7 |
HTTP_ACCEPT_ENCODING | gzip,deflate |
HTTP_ACCEPT_LANGUAGE | en-us,en;q=0.5 |
HTTP_CACHE_CONTROL | max-age=0 |
HTTP_CONNECTION | keep-alive |
HTTP_COOKIE | 200 |
HTTP_HOST | localhost |
HTTP_KEEP_ALIVE | 300 |
HTTP_USER_AGENT | Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1.5) Gecko/20060601 Firefox/2.0.0.5 (Ubuntu-edgy) |
Le script envoie une réponse contenant un en-tête Expires défini sur 60 secondes plus tard et utilise la fonctionnalité intégrée du module CGI pour calculer une date HTTP à partir de la chaîne « +60s », laquelle signifie « maintenant plus 60 secondes ».
Une fois le script chargé, lorsque vous spécifiez le point d'insertion dans la barre d'adresse et que vous appuyez sur Entrée pour charger la page à nouveau, aucune requête n'est envoyée et la Date reste inchangée pendant 60 secondes. Toutefois, si vous appuyez sur le bouton Actualiser ou Recharger de votre navigateur, la page est de nouveau chargée.
La page expire dans le cache au bout de 60 secondes ou est rechargée manuellement. Ces deux méthodes permettent d'envoyer une nouvelle requête et de redéfinir la date.