¿Es posible enviar una solicitud http solo para obtener la última hora de modificación?
Pregunta
¿En lugar del archivo en sí?
EDIT
¿Lo mejor con una demostración en PHP?
Solución
<?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'];
?>
Otros consejos
Sí. El " HEAD " El método solo devuelve los encabezados de respuesta y no los datos reales.
Puedes usar la función get_headers de php
$a = get_headers('http://sstatic.net/so/img/logo.png');
print_r($a);
En su solicitud HTTP, debe agregar cualquiera de estos atributos de encabezado, y puede recibir un 304 (Última modificación)
- If-Modified-Since
- Si-Ninguno-coincide
- If-Unmodified-Since
Andrei es correcto, HEAD solo obtendrá los encabezados. Mi sugerencia devolverá solo el encabezado y ningún cuerpo si se cumplen las condiciones. Si el contenido ha sido actualizado, el cuerpo contendrá la nueva información.
Debe escribir algún servicio para manejar la solicitud http y extraer la última fecha de modificación del archivo solicitado y devolver la fecha en respuesta.