¿Cuándo se registra una descarga como tal?

21

Al ver las imágenes en google images, uno podría accidentalmente hacer clic en "guardar imagen como", o "ver imagen" (lo que a veces también provoca una descarga). Esto abre una ventana que le pregunta si desea descargar dicho archivo. Sin embargo, si cancela antes de que se guarde algo, ¿esto todavía se ve como una descarga desde el lado del "servidor"? Como no estoy muy versado en este tema, mi uso del "servidor" solo cubre cualquier entidad que pueda registrar / guardar dicha actividad.

Felix R
fuente
4
Registrado como tal por quien? Muchos programas de análisis de registro (es decir, awstats, goaccess) consideran la descarga de cualquier archivo con un sufijo particular (.zip, .pdf ...). La lista de extensiones suele ser configurable. Otro software puede utilizar diferentes enfoques.
jjmontes

Respuestas:

52

Visto desde el lado del servidor, hay absolutamente no diferencia técnica entre "transferir para ver en una ventana del navegador" y "descargar para almacenamiento".

Tal vez un servidor proporcionará una vista previa (más pequeña) y la imagen real (más grande) para descargar, y puede distinguir a cuál se ha accedido. Pero puede registrar (y registrar) solo el acceso a estos archivos, la dirección IP de la que proviene la solicitud, una "cadena de identificación" genérica del software del navegador: no La intención de un cliente.

Pero el acceso a archivos no lo hace siempre resultado de la interacción humana con una computadora cliente. Por un lado, los navegadores almacenan imágenes y otros datos del sitio web en su sistema, incluso si ni siquiera usa "guardar imagen como ...". Por otro lado, muchos navegadores incluso "siguen enlaces" (es decir, ¡descargan cosas!) por adelantado , para agilizar la navegación. La memoria caché del navegador incluso podría entrar en su copia de seguridad local de esa manera, ¡incluso si nunca ha accedido a estos archivos de forma intencional!

Finalmente, usar "guardar como" y cancelar (no seleccionar un nombre de archivo de destino) puede o no iniciar una descarga, según la implementación del navegador que esté utilizando.

jvb
fuente
12
Heck: "guardar como" puede o no iniciar una descarga, independientemente de la cancelación, si el navegador ya tiene la imagen, ¿por qué solicitarla nuevamente al servidor ("no hay caché" y no obstante)?
minnmass
6
En realidad, hay puede ser una diferencia, en términos de la Content-Disposition Encabezado HTTP : inline indica una vista en el navegador, attachment una descarga
Uwe Keim
13
@UweKeim es en realidad una sugerencia del servidor. Normalmente el navegador lo seguiría, pero el servidor no tiene forma de juzgar si el cliente es realmente un navegador ni si respetará este encabezado. curl https://www.google.com/ -H 'User-Agent: I am really a web browser, trust me' >> /dev/null ;)
ElmoVanKielmo
1
... y para demostrar que es más que teórico, considera los archivos PDF. Históricamente, los navegadores los han tratado como descargas, pero los navegadores modernos pueden mostrarlos directamente.
MSalters
1
El navegador será inicie una descarga a menos que esa URL, etc. ya esté en el caché del navegador. De lo contrario, el navegador no tiene forma de saber cuál podría ser el nombre del archivo, el tipo de documento que es, o incluso si hay algún contenido para guardar. El navegador emitirá algún tipo de solicitud al servidor, y al servidor será "contar" que sin embargo quiere.
Christopher Schultz
7

Como no estoy muy versado en este tema, mi uso del "servidor" solo cubre cualquier entidad que pueda grabar / ver / guardar dicha actividad.

Si bien el servidor HTTP no ve la descarga cancelada, es posible que haya un código Javascript en la página que controla dichos eventos.

Javascript tiene controladores de eventos que se pueden usar para detectar un clic derecho en la imagen, y es muy probable que uno pueda monitorear otros movimientos del mouse para adivinar qué opción realiza en el menú emergente. Después de eso, el script puede enviar fácilmente la información al servidor inmediatamente, o almacenarla en el almacenamiento del navegador local y enviarla más tarde.

En el caso específico de la búsqueda de imágenes de Google, el Javascript en esa página tiene múltiples controladores que escuchan los eventos del mouse. Sin embargo, el código está ofuscado, por lo que no es fácil saber qué tipo de monitoreo hace.

jpa
fuente
1
"Guardar destino como" generalmente se pondrá en contacto con el servidor para obtener el nombre, tipo y tamaño del archivo. Posiblemente con un HEAD Solicitud HTTP en lugar de una GET.
Ben Voigt
@BenVoigt hay una gran diferencia entre "Guardar destino como" y "Guardar imagen como". Uno es para enlaces, el otro para imágenes que ya están visibles y, por lo tanto, se han descargado anteriormente.
Josef
@Josef: Es cierto, pero no veo nada en la pregunta que indique que OP quiere limitarse al contenido que ya está en el caché. De hecho, veo una fuerte sugerencia de lo contrario, en la frase "cancelar antes de que se guarde algo".
Ben Voigt
6

Esto depende del servidor.

El servidor podría registrarse cuando se inicia la descarga (piénselo, debe saberlo porque sugiere un nombre).

El servidor también podría realizar un seguimiento de cuántos bytes se transfirieron y si / cuando se cerró la conexión, lo que puede mostrar si la carga completa se completó.

También hay otras posibilidades, como la reanudación de descargas y descargas multiproceso, pero de nuevo, el servidor podría saber y registrar todo esto.

Tenga en cuenta que en el caso particular de hacer clic con el botón derecho y descargar una imagen, es posible que la descarga no se registre como una descarga debido al almacenamiento en caché del lado del cliente.

davidgo
fuente
El servidor no sugiere un nombre. No se hicieron solicitudes de red adicionales cuando hice clic derecho en su avatar y seleccioné "guardar imagen como"
DavidPostill
9
@DavidPostill Depende de cómo se inicie la descarga. Si sigue un enlace o redirige a un recurso, y el servidor responde con Content-Disposition: attachment; filename="…" para que el navegador muestre el aviso de descarga, entonces incluso al cancelar la descarga, el servidor sabrá acerca de la solicitud, y probablemente incluso podrá distinguir que la descarga fue cancelada.
Bergi
4

Si ... se cancela antes de que se guarde algo, ¿el "servidor" notifica / registra esto como una descarga?

Un servidor remoto no debería notar ninguna actividad de descarga ya que no se ha iniciado ninguna descarga.

Sin embargo, un servidor remoto Sabe que ya has descargado la imagen. para mostrarlo en su navegador ... y una copia estará en el caché de su navegador ...

Cualquier "entidad" que supervise su máquina local directamente podría registrar algo relacionado con esa actividad.

DavidPostill
fuente
2
"Guardar como ..." hará una solicitud, ¿no es así? El navegador tiene que saber qué nombre sugerir, por ejemplo. La url podría ser sencilla / descargable pero el Content-Disposition encabezado contendrá el nombre del archivo real.
data
1
@data No. El nombre está en el html de la página descargada.
DavidPostill
1
Tenga en cuenta que algunos navegadores, como Chrome, descargan con entusiasmo y almacenan las URL en la página web que está visitando.
Tobia Tesan
3
@DavidPostill Estás equivocado. El nombre puede ser anulado por Content-Disposition encabezado (ya mencionado un par de veces), lo que significa una solicitud debe hacerse primero Además, los navegadores pueden y comienzan la descarga de la carga útil antes de que haya elegido un directorio de destino.
Lightness Races in Orbit
6
Cada navegador web que conozco iniciará la descarga tan pronto como haga clic en el enlace, y lo ha hecho durante al menos los últimos veinte años. No esperarán a que elijas un nombre de archivo, se guardarán en un archivo temporal (o en la memoria) y lo cambiarán de nombre una vez que hayas pulsado "Aceptar".
Mark