Quand un téléchargement est-il enregistré en tant que tel?

21

Lors de la visualisation d'images sur Google Images, on peut accidentellement cliquer sur "Enregistrer l'image sous" ou "Afficher l'image" (ce qui entraîne parfois un téléchargement). Cela ouvre alors une fenêtre vous demandant si vous souhaitez télécharger ledit fichier. Cependant, si vous annulez avant d'enregistrer quoi que ce soit, est-ce toujours considéré comme un téléchargement du côté "serveur"? Comme je ne connais pas très bien ce sujet, mon utilisation de "serveur" ne couvre que l'entité qui pourrait enregistrer / sauvegarder ladite activité.

Felix R
la source
4
Enregistré comme tel par qui? De nombreux logiciels d'analyse de logs (ie awstats, goaccess) envisagent de télécharger n'importe quel fichier avec un suffixe particulier (.zip, .pdf ...). La liste des extensions est généralement configurable. D'autres logiciels peuvent utiliser des approches différentes.
jjmontes

Réponses:

52

Vu du côté serveur, il n'y a absolument aucune différence technique entre "transférer pour affichage dans une fenêtre de navigateur" et "téléchargement pour stockage".

Peut-être qu'un serveur fournira un aperçu (plus petit) et l'image réelle (plus grande) à télécharger, et pourra distinguer lequel a été consulté. Mais il ne peut enregistrer (et consigner) que l'accès à ces fichiers, l'adresse IP d'où provient la demande, une "chaîne d'identification" générique du logiciel de navigation - et non l'intention d'un client.

Mais l'accès aux fichiers ne résulte pas toujours d'une interaction humaine avec un ordinateur client. D'une part, les navigateurs stockent des images et d'autres données de site Web sur votre système même si vous n'utilisez même pas "enregistrer l'image sous ...". D'un autre côté, de nombreux navigateurs vont même «suivre des liens» (c'est-à-dire: télécharger des choses!) À l' avance , pour accélérer la navigation. Le cache du navigateur peut même pénétrer dans votre sauvegarde locale de cette façon, même si vous n'avez jamais délibérément accédé à ces fichiers!

Enfin, l'utilisation de "enregistrer sous" et l'annulation (ne pas sélectionner un nom de fichier de destination) peut ou non lancer un téléchargement, selon l'implémentation du navigateur que vous utilisez.

jvb
la source
12
Heck: "enregistrer sous" peut ou non lancer un téléchargement, indépendamment de l'annulation - si le navigateur a déjà l'image, pourquoi la demander à nouveau au serveur (indications "pas de cache" et nonobstant).
minnmass
6
En fait, il peut y avoir une différence, en termes d' Content-Dispositionen-tête HTTP : inlineindique une vue dans le navigateur, attachmentun téléchargement.
Uwe Keim
13
@UweKeim c'est en fait un indice du serveur. Normalement, le navigateur le suivrait mais le serveur n'a aucun moyen de juger si le client est réellement un navigateur ni s'il va respecter cet en-tête. curl https://www.google.com/ -H 'User-Agent: I am really a web browser, trust me' >> /dev/null;)
ElmoVanKielmo
1
... et pour montrer que c'est plus que théorique, pensez aux PDF. Historiquement, ceux-ci ont été traités par les navigateurs comme des téléchargements, mais les navigateurs modernes peuvent les afficher directement.
MSalters
1
Le navigateur lancera un téléchargement à moins que cette URL, etc. ne soit déjà dans le cache du navigateur. Sinon, le navigateur n'a aucun moyen de dire quel pourrait être le nom du fichier, le type de document qu'il s'agit ou même s'il y a du contenu à enregistrer. Le navigateur émet une sorte de demande au serveur, et le serveur sera « compter » que cependant il veut.
Christopher Schultz
7

Comme je ne connais pas très bien ce sujet, mon utilisation de "serveur" ne couvre que l'entité qui pourrait enregistrer / regarder / sauvegarder ladite activité.

Bien que le serveur HTTP ne voit pas le téléchargement annulé, il peut y avoir du code Javascript sur la page qui surveille ces événements.

Javascript a des gestionnaires d'événements qui peuvent être utilisés pour détecter un clic droit sur l'image, et il est très probable que l'on puisse surveiller les autres mouvements de la souris pour deviner quel choix vous faites dans le menu contextuel. Après cela, le script peut facilement envoyer les informations au serveur immédiatement, ou les stocker dans le stockage du navigateur local et les envoyer plus tard.

Dans le cas spécifique de la recherche d'images Google, le Javascript sur cette page a plusieurs gestionnaires qui écoutent les événements de la souris. Cependant, le code est obscurci, il n'est donc pas facile de dire quel type de surveillance il fait.

jpa
la source
1
"Enregistrer la cible sous" contactera généralement le serveur pour obtenir le nom, le type et la taille du fichier. Peut-être avec une HEADrequête HTTP plutôt qu'avec a GET.
Ben Voigt
@BenVoigt il y a une grande différence entre "Enregistrer la cible sous" et "enregistrer l'image sous". L'un est destiné aux liens, l'autre aux images qui sont déjà visibles et ont donc été téléchargées auparavant.
Josef
@Josef: C'est vrai, mais je ne vois rien dans la question qui indique qu'OP veut se limiter au contenu déjà dans le cache. En fait, je vois une forte suggestion contraire, dans la phrase «annuler avant que quoi que ce soit ne soit enregistré».
Ben Voigt le
6

Cela dépend du serveur.

Le serveur pourra s'enregistrer au démarrage du téléchargement (pensez-y, il doit le savoir car il suggère un nom).

Le serveur peut également garder une trace du nombre d'octets transférés et si / quand la connexion est fermée, ce qui peut indiquer si le téléchargement est terminé.

Il existe également d'autres possibilités comme la reprise des téléchargements et des téléchargements multithreads - mais encore une fois, le serveur pourrait savoir et enregistrer tout cela.

Notez que dans le cas particulier d'un clic droit et du téléchargement d'une image, il est possible que le téléchargement ne s'enregistre pas du tout en tant que téléchargement en raison de la mise en cache côté client.

davidgo
la source
Le serveur ne suggère pas de nom. Aucune demande de réseau supplémentaire n'a été faite lorsque j'ai fait un clic droit sur votre avatar et sélectionné "enregistrer l'image sous"
DavidPostill
9
@DavidPostill Dépend de la façon dont le téléchargement est lancé. Si vous suivez un lien ou redirigez vers une ressource, et que le serveur répond avec Content-Disposition: attachment; filename="…"pour que le navigateur affiche l'invite de téléchargement, alors même lors de l'annulation du téléchargement, le serveur sera informé de la demande - et peut même même distinguer que le téléchargement a été abandonné.
Bergi
4

Si ... vous annulez avant que quoi que ce soit ne soit enregistré, le "serveur" le remarque-t-il / l'enregistre-t-il en téléchargement?

Un serveur distant ne doit remarquer aucune activité de téléchargement car aucun téléchargement n'a été démarré.

Cependant, un serveur distant sait que vous avez déjà téléchargé l'image afin de l'afficher dans votre navigateur ... et une copie sera dans le cache de votre navigateur ...

Toute «entité» surveillant directement votre machine locale pourrait enregistrer quelque chose concernant cette activité.

DavidPostill
la source
2
"Enregistrer sous ..." fera une demande, n'est-ce pas? Le navigateur doit savoir quel nom suggérer, pour commencer. L'URL peut être simple / téléchargement mais l'en- Content-Dispositiontête contiendra le nom de fichier réel.
données du
1
@data No. Le nom est en html de la page téléchargée.
DavidPostill
1
Notez que certains navigateurs, tels que Chrome, téléchargent avec impatience les URL de cache qui apparaissent dans la page Web que vous visitez.
Tobia Tesan
3
@DavidPostill Vous vous trompez. Le nom peut être remplacé par l'en- Content-Dispositiontête (déjà mentionné plusieurs fois), ce qui signifie qu'une demande doit être faite en premier. De plus, les navigateurs peuvent commencer et téléchargent le téléchargement de la charge utile avant d'avoir choisi un répertoire de destination.
Courses de légèreté avec Monica le
6
Chaque navigateur Web que je connais commencera le téléchargement dès que vous cliquerez sur le lien, et cela depuis au moins vingt ans. Ils n'attendront pas que vous choisissiez un nom de fichier - ils l'enregistreront dans un fichier temporaire (ou en mémoire) et le renommeront une fois que vous aurez cliqué sur "OK".
Mark