Comment faire pour tester le “if-Modified-since” en-Tête HTTP de soutien

À l'aide de PHP comment puis-je tester avec précision que d'un site web distant prend en charge le "if-Modified-since" en-tête HTTP.

De ce que j'ai lu, si le fichier distant, vous OBTENEZ a été modifié depuis la date spécifiée dans l'en-tête de requête - il doit retourner un 200 OK statut. Si il n'a pas été modifié, il doit retourner un "304 not Modified".

Donc ma question est, que faire si le serveur n'est pas support "if-Modified-since", mais renvoie toujours un 200 OK?

Il existe quelques outils qui vérifier si votre site web prend en charge "if-Modified-Since" donc je suppose que je me demande comment ils fonctionnent.

Edit:

J'ai effectué quelques tests à l'aide de Curl, l'envoi de celui-ci;

curl_setopt($ch, CURLOPT_HTTPHEADER, array("If-Modified-Since: ".gmdate('D, d M Y H:i:s \G\M\T',time()+60*60*60*60)));
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_MAXREDIRS, 5);
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_NOBODY, true);
curl_setopt($ch, CURLOPT_AUTOREFERER, true);
curl_setopt($ch, CURLOPT_FORBID_REUSE, true);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 4);
curl_setopt($ch, CURLOPT_TIMEOUT, 4);

c'est à dire une date dans le futur google.com retourne;

HTTP/1.0 304 Not Modified
Date: Fri, 05 Feb 2010 16:11:54 GMT
Server: gws
X-XSS-Protection: 0
X-Cache: MISS from .
Via: 1.0 .:80 (squid)
Connection: close

et si j'envoie;

curl_setopt($ch, CURLOPT_HTTPHEADER, array("If-Modified-Since: ".gmdate('D, d M Y H:i:s \G\M\T',time()-60*60*60*60)));
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_MAXREDIRS, 5);
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_NOBODY, true);
curl_setopt($ch, CURLOPT_AUTOREFERER, true);
curl_setopt($ch, CURLOPT_FORBID_REUSE, true);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 4);
curl_setopt($ch, CURLOPT_TIMEOUT, 4);

c'est à dire une date dans le passé, google.com retourne;

HTTP/1.0 200 OK
Date: Fri, 05 Feb 2010 16:09:12 GMT
Expires: -1
Cache-Control: private, max-age=0
Content-Type: text/html; charset=ISO-8859-1
Server: gws
X-XSS-Protection: 0
X-Cache: MISS from .
Via: 1.0 .:80 (squid)
Connection: close

Si je puis envoyer à la fois à la bbc.co.royaume-uni (qui ne le supporte pas);

L'avenir, on retourne;

HTTP/1.1 200 OK
Date: Fri, 05 Feb 2010 16:12:51 GMT
Server: Apache
Set-Cookie: BBC-UID=84bb66bc648318e367bdca3ad1d48cf627005b54f090f211a2182074b4ed92c40ForbSoft%20Web%20Diagnostics%20%28URL%20Validator%29; expires=Tue, 04-Feb-14 16:12:51 GMT; path=/; domain=bbc.co.uk;
Accept-Ranges: bytes
Cache-Control: max-age=0
Expires: Fri, 05 Feb 2010 16:12:51 GMT
Pragma: no-cache
Content-Length: 111677
Content-Type: text/html

La date dans le passé renvoie;

HTTP/1.1 200 OK
Date: Fri, 05 Feb 2010 16:14:01 GMT
Server: Apache
Set-Cookie: BBC-UID=841b66ec44232cd91e81e88a014a3c5e50ed4e20c0e07174c4ff59675cd2fa210ForbSoft%20Web%20Diagnostics%20%28URL%20Validator%29; expires=Tue, 04-Feb-14 16:14:01 GMT; path=/; domain=bbc.co.uk;
Accept-Ranges: bytes
Cache-Control: max-age=0
Expires: Fri, 05 Feb 2010 16:14:01 GMT
Pragma: no-cache
Content-Length: 111672
Content-Type: text/html

Donc ma question est toujours debout.

Veuillez poster le curl commandes que vous utilisez, je suis en essais de la ligne de commande et tout ce que j'obtiens est 200s n'importe quel en-tête de je envoyer
Si le serveur ne prend pas en charge if-Modified-since, mais toujours retourne le code d'état 200, alors c'est que vous avez envoyé la demande sans if-Modified-since et le serveur répond avec le code d'état 200. Il n'y a pas de différence. De 200 de 200, “La demande a réussi.”
J'ai ajouté le curl commandes/options dans mon premier post ci-dessus.
La question est mal per se, car l'emplacement/l'entité a à l'appui de cet en-tête, pas le site ou le serveur (comme l'a fait remarquer @l'Infini). Afin de tester une URL unique ne rien vous dire sur le reste de du serveur requestable entités.

OriginalL'auteur J.C | 2010-02-05