Lädt der Browser beim Speichern einer Webseite mit Strg + S in Firefox die Website ein zweites Mal?


58

Beim Speichern einer Website zum Offline-Lesen mit Ctrl+ Sin Firefox stelle ich fest, dass der Downloadvorgang einige Sekunden dauert, obwohl die Webseite bereits geladen ist.

Ich frage mich, ob Firefox durch das Speichern der Webseite den gesamten Inhalt (HTML, Bilder, JavaScript, CSS usw.) ein zweites Mal abruft oder ob es ihn nur aus den bereits geladenen Dateien im Cache abruft.


Soweit ich mich erinnere, wurde die Seite von alten Firefoxen neu geladen. Die Antworten beziehen sich auf den aktuellen Firefox. Es ist seit einigen Jahren so.
user259412

Könnten Sie erklären, was Sie "den Download-Prozess" nennen? Auch wenn die im Speicher befindlichen Ressourcen nicht erneut aus dem Netzwerk heruntergeladen werden sollten, muss der Browser noch einige Schritte ausführen, um alle Daten in einen Ordner zu exportieren und Verknüpfungen usw. zu ändern. Wenn die Speicherfestplatte angehalten wurde, kann dies ebenfalls einige Zeit in Anspruch nehmen einige Zeit, nur um es aufzuwecken, damit wir ihm schreiben können. Wenn Sie jedoch davon sprechen, dass der Bereich Bibliothek> Downloads einige Zeit in Anspruch nimmt und etwa 1,2 Mbit / s anzeigt, kann dies an dieser Regression liegen, die sie nicht als Fehler betrachteten ...
Kaiido

4
Auch wenn andere Benutzer dies bereits richtig beantwortet haben, ist zu beachten, dass das Katalogisieren eines solchen Verhaltens für jede Software oftmals ein vergeblicher Aufwand ist, es sei denn, die Softwareentwickler bieten eine Verhaltensgarantie an. Daher sollte jede Antwort, die als richtig markiert ist, auf die Version verweisen, gegen die sie getestet wurde, anstatt eine umfassende Annahme über alle zukünftigen und früheren Versionen zu treffen. Gut, dass die Top-Antwort dieses Anliegen bereits angesprochen hat. Ich weiß; pingelig.
Adnan Y

Obwohl dies aussieht und auf jeden Fall eine "WTF" ist, hat die Realität gezeigt, dass dies vor etwa einem Jahrzehnt völlig normal war, nicht nur bei Firefox. Frag mich nicht warum, es macht überhaupt keinen Sinn.
Damon

Antworten:


68

Nein, es wird keine zweite Anfrage ausgelöst.

Ich habe es gerade getestet, indem ich einen einfachen HTTP-Server zum Protokollieren der Anforderungen ausgeführt habe. Der Server hat beim Speichern der Website keine zweite Anfrage erhalten.

  • Getestet mit: Firefox 61.0.1 (64-Bit) unter Ubuntu 18.04
  • Server: SimpleHTTPServer-Modul von Python 2.7.15 ( python -m SimpleHTTPServer 7070)

Bearbeiten:

Kommentatoren fragten nach einem anderen Verhalten, wenn der Server "No-Cache" -Header sendet. Ich habe es mit Pragma: No-Cacheund getestet Cache-Control: No-Cacheund das Ergebnis bleibt gleich.

Der Code, mit dem ich den Test durchgeführt habe (über diese Antwort ):

#!/usr/bin/env python
import SimpleHTTPServer

class MyHTTPRequestHandler(SimpleHTTPServer.SimpleHTTPRequestHandler):
    def end_headers(self):
        self.send_my_headers()

        SimpleHTTPServer.SimpleHTTPRequestHandler.end_headers(self)

    def send_my_headers(self):
        self.send_header("Pragma", "No-Cache")
        self.send_header("Cache-Control", "No-Cache")


if __name__ == '__main__':
    SimpleHTTPServer.test(HandlerClass=MyHTTPRequestHandler)

11

Nein, das tut es nicht.

Ich habe dies gerade ohne Code getestet, indem ich meinen Computer vom Internet getrennt und dann eine bereits geladene Webseite gespeichert habe.

Es funktionierte. Sie können den gleichen Test auch selbst durchführen.


Zugegeben, das Verhalten könnte anders sein, wenn der Computer online oder offline ist, aber die aktuelle Top-Antwort zeigt einen eingehenderen Test. Ich denke, es ist immer noch wertvoll, einen einfachen Test zu haben .


11
Es gibt so viele Kombinationen von Expires, Cache-Control, Pragma und möglicherweise anderen Headern, dass "nicht in diesem Einzelfall" mit Sicherheit nicht "nie" bedeutet. Ohne den Quellcode zu betrachten, würde ich auf nichts wetten.
Guntram Blohm

5
@GuntramBlohm, absolut richtig. Wenn der einfache Test hingegen fehlgeschlagen ist, können Sie definitiv den Schluss ziehen, dass Strg-S nicht immer funktioniert, ohne dass eine zusätzliche Anforderung an den Server gesendet wird, auch wenn dies manchmal der Fall ist. Der einfache Test hat also immer noch Wert; Ich war überrascht, dass es niemand anders erwähnt hatte, also tat ich es.
Wildcard

8

Lässt ctrlsFirefox beim Speichern einer Webseite ( ) den gesamten Inhalt ein zweites Mal abrufen?

Dies kann leicht mit den Entwicklertools von Firefox getestet werden .

  • Öffnen Sie die Tools und klicken Sie auf die Registerkarte "Netzwerk".

  • Speichern Sie die Seite

Sie werden feststellen, dass kein zusätzlicher Netzwerkverkehr generiert wird.


50
Ich bezweifle, dass wir uns in diesem Fall auf die Entwicklertools verlassen können. Es wird nur der Datenverkehr von einer einzelnen Registerkarte angezeigt, und ich glaube nicht, dass der Download im Kontext dieser Registerkarte ausgeführt wird. Nach Ihrer Überlegung sollte "Speichern unter" aus dem Kontextmenü eines Links, den Sie nicht besucht haben, auf der Registerkarte "Netzwerk" angezeigt werden. Dies ist jedoch nicht der Fall.
Kapex

@kapex Verstanden. Aber als auf einen nicht besuchten Link zu speichern ist in diesem Fall nicht das, was passiert.
DavidPostill

5
@kapex Ich habe gerade meine Internetverbindung getrennt und konnte immer noch eine Seite korrekt speichern ...
DavidPostill

11
Ich bezweifle nicht, dass der Cache verwendet wird, ich bezweifle nur, dass die Entwicklertools verwendet werden können, um dies zu beweisen. Ich würde erwarten, dass sowohl "Speichern unter" als auch "Seite speichern" sich auf die gleiche Weise verhalten, aber es könnte natürlich Unterschiede geben. Hier ist eine weitere Idee: Wenn wir das Caching in den Entwicklertools deaktivieren, sollte die Verwendung von Strg + s auf der Registerkarte "Netzwerk" auf jeden Fall angezeigt werden, dies ist jedoch nicht der Fall.
Kapex

1
Sie müssten die Browser-Toolbox verwenden, die alle Netzwerkanforderungen des Browsers anzeigt, einschließlich der internen Anforderungen, die nicht an eine bestimmte Seite gebunden sind.
Neil


1

Möglicherweise.

CSS hat einen @mediaSelektor. Es ermöglicht dem CSS, unterschiedliche Definitionen zu verwenden, abhängig davon, welche Art von Hardware zum Anzeigen der Seite verwendet wird - Drucker, Bildschirme unterschiedlicher Größe usw.

CSS kann Bilddateien (Aufzählungszeichenbilder, Hintergrundbilder) auch direkt anfordern.

Wenn Firefox beim Anzeigen der Seite nur das herunterlädt, was für die aktuelle Hardware erforderlich ist, aber beim Speichern auf der Festplatte alles herunterlädt, können Sie zusätzliche Anforderungen haben.

Vorbehalt:

Dies ist nur die erste Hälfte einer praktisch nützlichen Antwort. Die zweite Hälfte würde dieses Szenario testen. Leider läuft mir die Zeit davon, und ich akzeptiere alle Änderungen oder Kommentare, wenn jemand wiederholbare Testergebnisse melden kann.


Nein, alle CSS-Dateien werden heruntergeladen, nur nicht analysiert :)
Martijn
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.