É possível enviar uma solicitação HTTP apenas para obter a última vez modificada?

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

  •  05-07-2019
  •  | 
  •  

Pergunta

Em vez do arquivo em si?

Editar

Best com uma demo em PHP?

Foi útil?

Solução

<?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'];
?>

Outras dicas

Sim. A "cabeça" método retorna apenas os cabeçalhos de resposta e não os dados reais.

Você pode usar a função get_headers do php

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

Em seu pedido HTTP você deve adicionar qualquer um dos esses atributos de cabeçalho, e você pode receber uma 304 (modificada)

  1. If-Modified-Since
  2. If-None-Match
  3. Se-Unmodified-Since

Andrei está correto, HEAD só vai conseguir os cabeçalhos. Minha sugestão retornará apenas o cabeçalho e nenhum corpo se os se condições sejam atendidas. Se o conteúdo foi atualizado o corpo irá conter as novas informações.

Você precisa escrever algum serviço para manipular a solicitação HTTP e extrair a data da última modificação para o arquivo solicitado e retornar a data em resposta.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top