L'enregistrement d'une page Web à l'aide de Ctrl + S dans Firefox oblige-t-il le navigateur à charger le site une seconde fois?

58

Lorsque vous enregistrez un site Web pour une lecture hors ligne avec Ctrl+ Sdans Firefox, je remarque que le processus de téléchargement prend quelques secondes, mais la page Web est déjà chargée.

Je me demande si le fait de sauvegarder la page Web de cette manière incitera Firefox à récupérer tout le contenu (HTML, images, JavaScript, CSS, etc.) une seconde fois, ou s'il récupérera simplement le contenu des fichiers déjà chargés dans le cache.

4253wyerg4e
la source
Si je me souviens bien, de vieux firefoxes ont rechargé la page. Les réponses sont pour le firefox actuel. C'est depuis quelques années donc.
user259412
Pourriez-vous préciser ce que vous appelez "le processus de téléchargement"? Même si les ressources en mémoire ne doivent pas être re-téléchargées du réseau, le navigateur a encore du chemin à faire pour exporter toutes les données d'un dossier + modifier les liens, etc. De plus, si le disque de stockage a été mis en pause, cela peut prendre un peu de temps juste pour le réveiller afin que nous puissions y écrire. Mais si vous parlez du panneau Bibliothèque> Téléchargements prenant du temps et affichant quelque chose comme 1,2 Mbps, cela pourrait être lié à cette régression qu’ils ne considéraient pas comme un bogue ...
Kaiido
4
Bien que d'autres utilisateurs aient déjà bien répondu à cette question, notez que le catalogage d'un tel comportement sur un logiciel peut souvent s'avérer un effort inutile, sauf si une garantie de comportement est fournie par les développeurs du logiciel. Ainsi, toute réponse marquée comme correcte doit indiquer la version sur laquelle elle a été testée plutôt que de faire une hypothèse générale sur toutes les versions futures et antérieures. C'est une bonne chose que la réponse principale ait déjà répondu à cette préoccupation. Je connais; nitpicking.
Adnan Y
Bien que cela ressemble à, et certainement, un "WTF", la réalité veut que cela était parfaitement normal il y a une dizaine d'années, pas seulement avec Firefox. Ne me demandez pas pourquoi, cela n'a aucun sens.
Damon

Réponses:

68

Non, cela ne déclenche pas une seconde demande.

Je viens de le tester en exécutant un simple serveur HTTP pour enregistrer les demandes. Le serveur n'a pas reçu une deuxième demande lors de l'enregistrement du site Web.

  • Testé avec: Firefox 61.0.1 (64 bits) sur Ubuntu 18.04
  • Serveur: module SimpleHTTPServer de python 2.7.15 ( python -m SimpleHTTPServer 7070)

Modifier:

Les commentateurs ont demandé un comportement différent si le serveur envoie des en-têtes "sans cache". Je l'ai testé avec Pragma: No-Cacheet Cache-Control: No-Cachele résultat reste le même.

Le code que j'avais l'habitude de faire le test (via cette réponse ):

#!/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)
McFarlane
la source
11

Non, ça ne va pas.

Je viens de tester cela sans code en déconnectant mon ordinateur d'Internet puis en sauvegardant une page Web déjà chargée.

Ça a marché. Vous pouvez faire le même test vous-même.


Certes, le comportement peut être différent si l'ordinateur est en ligne ou hors ligne, mais la réponse actuelle la plus récente indique un test plus approfondi. Je pense juste que c'est toujours utile d'avoir un test simple .

Wildcard
la source
11
Il y a tellement de combinaisons d'expirations, de contrôle de cache, de Pragma et peut-être d'autres en-têtes, que "pas dans ce seul cas" ne signifie certainement pas "jamais". Sans regarder le code source, je ne parierais sur rien.
Guntram Blohm soutient Monica
5
@GuntramBlohm, tout à fait raison. D'un autre côté, si le test simple échoue, vous pouvez alors définitivement conclure que Ctrl-S ne fonctionnera pas toujours sans envoyer une requête supplémentaire au serveur, même si cela peut parfois arriver. Donc, le test simple a toujours de la valeur; J'étais surpris que personne d'autre n'en ait parlé, alors je le fis.
Wildcard
8

L'enregistrement d'une page Web ( ctrls) oblige-t-il Firefox à récupérer tout le contenu une seconde fois?

Ceci est facilement testé en utilisant les outils de développement de Firefox .

  • Ouvrez les outils et cliquez sur l'onglet "Réseau".

  • Sauvegarder la page

Vous verrez qu'il n'y a pas de trafic réseau supplémentaire généré.

DavidPostill
la source
50
Je doute que vous puissiez compter sur les outils de développement dans ce cas. Il affiche uniquement le trafic depuis un seul onglet et je ne pense pas que le téléchargement s'exécute dans le contexte de cet onglet. Je pense que, selon votre raisonnement, utiliser "enregistrer sous" dans le menu contextuel d'un lien que vous n'avez pas visité devrait apparaître dans l'onglet Réseau - mais ce n'est pas le cas.
Kapex
@kapex compris. Mais enregistrer comme sur un lien non visité n'est pas ce qui se passe dans ce cas.
DavidPostill
5
@kapex Je viens de débrancher ma connexion Internet et je pouvais tout de même sauvegarder correctement une page ...
DavidPostill
11
Je ne doute pas qu'il utilise le cache, je doute que les outils de développement puissent être utilisés pour le prouver. Je m'attendrais à ce que "enregistrer sous" et "enregistrer la page" se comportent de la même manière, mais il pourrait bien sûr y avoir des différences. Voici donc une autre idée: si nous désactivions la mise en cache dans les outils de développement, ctrl + s devrait certainement apparaître dans l'onglet Réseau, mais là encore, ce n'est pas le cas.
Kapex
1
Vous devrez utiliser la boîte à outils du navigateur, qui affiche toutes les requêtes réseau du navigateur, y compris les requêtes internes non liées à une page spécifique.
Neil
1

Peut-être.

CSS a un @mediasélecteur. Il permet au CSS d’utiliser différentes définitions en fonction du type de matériel utilisé pour afficher la page: imprimante, écrans de différentes tailles, etc.

CSS peut également demander directement des fichiers image (images avec puces, images d’arrière-plan).

Maintenant, si Firefox télécharge uniquement ce qui est nécessaire pour le matériel actuel lors de l'affichage de la page, mais télécharge tout lors de l'enregistrement sur disque, vous pouvez avoir des requêtes supplémentaires.

Caveat:

Ce n’est que la première partie d’une réponse utile; la seconde moitié serait tester ce scénario. Malheureusement, je manque de temps. J'accepterai donc toutes modifications ou commentaires si quelqu'un peut signaler des résultats de test reproductibles.

outil forgeron
la source
Non, tous les fichiers CSS sont téléchargés, mais ne sont pas analysés :)
Martijn