Est-il possible d'envoyer une requête http uniquement pour obtenir la dernière heure modifiée?

StackOverflow https://stackoverflow.com/questions/1806686

  •  05-07-2019
  •  | 
  •  

Question

Au lieu du fichier lui-même?

MODIFIER

Le mieux avec une démo en PHP?

Était-ce utile?

La solution

<?php
// Get Headers
$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL,            'http://example.com/'); 
curl_setopt($ch, CURLOPT_HEADER,         true); 
curl_setopt($ch, CURLOPT_NOBODY,         true); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch, CURLOPT_TIMEOUT,        10); 
$response = curl_exec($ch); 

// Process Headers
$headerLines = explode("\r\n", $response);
foreach ($headerLines as $headerLine) {
    $headerLineParts = explode(': ', $headerLine);
    if (count($headerLineParts) >= 2) {
        $headers[$headerLineParts[0]] = $headerLineParts[1];
    }
}

echo $headers['Last-Modified'];
?>

Autres conseils

Oui. Le " HEAD " Cette méthode ne renvoie que les en-têtes de réponse et non les données réelles.

Vous pouvez utiliser la fonction get_headers de php

$a = get_headers('http://sstatic.net/so/img/logo.png');
print_r($a);

Dans votre requête HTTP, vous devez ajouter l'un de ces attributs d'en-tête et vous pourrez recevoir un 304 (dernière modification)

  1. Si-modifié-depuis
  2. If-None-Match
  3. Si-non modifié-depuis

Andrei a raison, HEAD obtiendra uniquement les en-têtes. Ma suggestion ne renverra que l'en-tête et aucun corps si les conditions sont remplies. Si le contenu a été mis à jour, le corps contiendra les nouvelles informations.

Vous devez écrire un service pour traiter la demande http, extraire la date de dernière modification du fichier demandé et renvoyer la date en réponse.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top