Nein, Sie können nicht wissen, wann eine Seite zuletzt aktualisiert oder zuletzt geändert oder auf einen Server hochgeladen wurde (was je nach Interpretation drei verschiedene Dinge sein kann), indem Sie einfach auf die Seite zugreifen.
Ein Server kann und sollte (gemäß dem HTTP 1.1-Protokoll) einen Last-Modified
Header senden , den Sie auf verschiedene Arten herausfinden können, z. B. mithilfe des HTTP-Viewers von Rex Swain . Laut Protokoll ist dies jedoch gerecht
"Das Datum und die Uhrzeit, zu der der Ursprungsserver glaubt, dass die Variante zuletzt geändert wurde".
Und das Protokoll fügt realistisch hinzu:
„Die genaue Bedeutung dieses Headerfelds hängt von der Implementierung des Ursprungsservers und der Art der ursprünglichen Ressource ab. Bei Dateien ist dies möglicherweise nur die zuletzt geänderte Zeit des Dateisystems. Bei Entitäten mit dynamisch eingeschlossenen Teilen ist dies möglicherweise die aktuellste der letzten Änderungszeiten für die Komponenten. Bei Datenbank-Gateways ist dies möglicherweise der Zeitstempel für die letzte Aktualisierung des Datensatzes. Bei virtuellen Objekten ist es möglicherweise das letzte Mal, dass sich der interne Status geändert hat. “
In der Praxis werden Webseiten sehr oft dynamisch aus einem Content Management System oder auf andere Weise erstellt. In solchen Fällen zeigt der Last-Modified
Header normalerweise einen Datenstempel zum Erstellen der Antwort, der normalerweise sehr nahe am Zeitpunkt der Anforderung liegt. Dies bedeutet, dass der Header in solchen Fällen praktisch unbrauchbar ist.
Selbst bei einer „statischen“ Seite (der Server nimmt einfach eine der Anforderung entsprechende Datei auf und sendet sie) zeigt der Last-Modified
Datumsstempel normalerweise nur den letzten Schreibzugriff auf die Datei auf dem Server an. Dies kann sich auf eine Zeit beziehen, in der die Datei von einer Sicherungskopie wiederhergestellt wurde, oder auf eine Zeit, in der die Datei auf dem Server bearbeitet wurde, ohne den Inhalt zu ändern, oder auf eine Zeit, in der sie auf den Server hochgeladen wurde und möglicherweise eine ältere ersetzt identische Kopie. In diesen Fällen wird unter der Annahme, dass der Zeitstempel technisch korrekt ist, eine Zeit angegeben, nach der die Seite nicht mehr geändert wurde (jedoch nicht unbedingt der Zeitpunkt der letzten Änderung).
Last-Modified
Header ist korrekt , es ist jedoch möglich,HEAD
anhand der Antwort des Servers auf eine Anfrage fundierte Vermutungen anzustellen, die auf dem Wissen über den Server eines bestimmten Hosts und dessen Inhalt sowie dessen Generierung basieren. Das Herumschnüffeln in ihren Seiten und mit einem Schnüffler auf der Verbindung kann viel verraten.Öffnen Sie die Browserkonsole ( ? ) Und geben Sie Folgendes ein:
javascript:alert(document.lastModified)
quelle
javascript:alert(document.lastModified)
Nicht das tatsächliche DatumEs gibt eine andere Möglichkeit, das Seitenupdate zu finden, das für einige Gelegenheiten nützlich sein kann (wenn es funktioniert :).
Wenn die Seite von Google oder Wayback Machine indiziert wurde, können Sie herausfinden, welche Daten von ihnen gespeichert wurden (wurden) (diese Methoden funktionieren für keine Seite und weisen einige Einschränkungen auf, die ausführlich untersucht werden) In dieser webmasters.stackexchange- Frage werden die Antworten beantwortet . In vielen Fällen können sie Ihnen jedoch dabei helfen, die Aktualisierungsdaten für die Seite herauszufinden:
Saved 6 times between June 7, 2014 and November 23, 2016.
, und Sie können alle gespeicherten Kopien für jedes Datum anzeigenquelle
Zum Überprüfen des
Last Modified
Headers können Siehttpie
( docs ) verwenden.Installation
pip install httpie --user
Verwendung
$ http -h https://martin-thoma.com/author/martin-thoma/ | grep 'Last-Modified\|Date' Date: Fri, 06 Jan 2017 10:06:43 GMT Last-Modified: Fri, 06 Jan 2017 07:42:34 GMT
Das
Date
ist wichtig , da dies die Serverzeit - Berichte, nicht die lokale Zeit. Außerdem sendet nicht jeder ServerLast-Modified
(z. B. scheint der Superuser dies nicht zu tun).quelle
Dies ist eine pythonische Methode :
import httplib import yaml c = httplib.HTTPConnection(address) c.request('GET', url_path) r = c.getresponse() # get the date into a datetime object lmd = r.getheader('last-modified') if lmd != None: cur_data = { url: datetime.strptime(lmd, '%a, %d %b %Y %H:%M:%S %Z') } else: print "Hmmm, no last-modified data was returned from the URL." print "Returned header:" print yaml.dump(dict(r.getheaders()), default_flow_style=False)
Der Rest des Skripts enthält ein Beispiel für das Archivieren einer Seite, das Überprüfen auf Änderungen an der neuen Version und das Benachrichtigen einer Person per E-Mail.
quelle
Für mich war es das
article:modified_time
in der Seitenquelle.
quelle