Quando um download é registrado como tal?

21

Ao visualizar imagens no google images, pode-se clicar acidentalmente em "salvar imagem como" ou "visualizar imagem" (que de alguma forma também solicita um download). Isso abre uma janela perguntando se você deseja baixar o arquivo. No entanto, se você cancelar antes que algo seja salvo, isso ainda será visto como um download do lado "servidor"? Como não sou muito versado neste tópico, meu uso de "servidor" cobre apenas qualquer entidade que possa registrar / salvar a referida atividade.

Felix R
fonte
4
Registrado como tal por quem? Muitos softwares de análise de log (por exemplo, awstats, goaccess) consideram o download de qualquer arquivo com sufixos específicos (.zip, .pdf ...). A lista de extensões é geralmente configurável. Outro software pode usar abordagens diferentes.
jjmontes 14/01

Respostas:

52

Visto do lado do servidor, não há absolutamente nenhuma diferença técnica entre "transferir para visualização em uma janela do navegador" e "baixar para armazenamento".

Talvez um servidor forneça uma visualização (menor) e a imagem real (maior) para download e possa distinguir qual foi acessado. Mas ele pode registrar (e registrar) apenas o acesso a esses arquivos, o endereço IP do qual a solicitação veio, uma "id string" genérica do software do navegador - não a intenção de um cliente.

Mas o acesso a arquivos nem sempre resulta da interação humana com um computador cliente. Por um lado, os navegadores armazenam imagens e outros dados do site em seu sistema, mesmo que você nem use "salvar imagem como ...". Por outro lado, muitos navegadores até "seguem links" (ou seja, baixam coisas!) Antecipadamente , para acelerar a navegação. O cache do navegador pode entrar no backup local dessa maneira, mesmo que você nunca tenha acessado esses arquivos intencionalmente!

Por fim, usar "salvar como" e cancelar (não selecionar um nome de arquivo de destino) pode ou não iniciar um download, dependendo da implementação do navegador que você está usando.

jvb
fonte
12
Heck: "save as" pode ou não iniciar um download, independentemente do cancelamento - se o navegador já possui a imagem, por que solicitá-la novamente no servidor (dicas de "sem cache" e não obstante).
minnmass 14/01
6
Na verdade, pode haver uma diferença, em termos do Content-Dispositioncabeçalho HTTP : inlineindica uma visualização no navegador, attachmentum download.
Uwe Keim 14/01
13
@UweKeim, na verdade, é uma dica do servidor. Normalmente, o navegador o seguiria, mas o servidor não tem como julgar se o cliente é realmente um navegador nem se vai respeitar esse cabeçalho. curl https://www.google.com/ -H 'User-Agent: I am really a web browser, trust me' >> /dev/null;)
ElmoVanKielmo 14/01
1
... e para mostrar que é mais do que teórico, considere PDFs. Historicamente, esses foram tratados pelos navegadores como downloads, mas os navegadores modernos podem exibi-los diretamente.
MSalters 14/01
1
O navegador irá iniciar um download, a menos que URL, etc. já estão no cache do browser. Caso contrário, o navegador não tem como dizer qual pode ser o nome do arquivo, o tipo de documento ou mesmo se existe algum conteúdo para salvar. O navegador vai emitir algum tipo de solicitação para o servidor, e o servidor irá "contar" que no entanto ele quer.
Christopher Schultz
7

Como não sou muito versado neste tópico, meu uso do "servidor" cobre apenas qualquer entidade que possa gravar / assistir / salvar a referida atividade.

Embora o servidor HTTP não veja o download cancelado, pode haver código Javascript na página que monitora esses eventos.

O Javascript possui manipuladores de eventos que podem ser usados ​​para detectar um clique com o botão direito na imagem, e é bem provável que alguém possa monitorar outros movimentos do mouse para adivinhar qual a escolha que você faz no menu pop-up. Depois disso, o script pode facilmente enviar as informações para o servidor imediatamente ou armazená-las no armazenamento do navegador local e enviá-las mais tarde.

No caso específico da pesquisa de imagens do Google, o Javascript nessa página tem vários manipuladores ouvindo os eventos do mouse. No entanto, o código é ofuscado, portanto, não é fácil dizer que tipo de monitoramento ele faz.

jpa
fonte
1
"Salvar destino como" geralmente entra em contato com o servidor para obter o nome, tipo e tamanho do arquivo. Possivelmente com uma HEADsolicitação HTTP em vez de a GET.
Ben Voigt
@BenVoigt, há uma grande diferença entre "Salvar destino como" e "salvar imagem como". Um é para links, o outro para imagens que já são visíveis e, portanto, foram baixadas antes.
Josef
@ Josef: Verdade, mas não vejo nada na pergunta que indique que o OP quer se limitar ao conteúdo que já está no cache. De fato, vejo uma forte sugestão em contrário, na frase "cancelar antes que algo seja salvo".
Ben Voigt
6

Isso depende do servidor.

O servidor poderá se registrar quando o download for iniciado (pense nisso, ele deve saber porque sugere um nome).

O servidor também pode acompanhar quantos bytes foram transferidos e se / quando a conexão foi fechada, o que pode mostrar se o diwnload foi concluído.

Também existem outras possibilidades, como dowloads retomados e downloads multithread - mas, novamente, o servidor pode saber e registrar tudo isso.

Observe que, no caso específico de clicar com o botão direito do mouse e fazer o download de uma imagem, é possível que o download não seja registrado como um download devido ao cache do cliente.

davidgo
fonte
O servidor não sugere um nome. Nenhuma solicitação de rede adicional foi feita quando eu clico com o botão direito do mouse no seu avatar e selecionei "salvar imagem como"
DavidPostill
9
@DavidPostill Depende de como o download é iniciado. Se você seguir um link ou redirecionamento para um recurso, e as responde servidor com Content-Disposition: attachment; filename="…"para que os shows do navegador a transferência rápida, em seguida, mesmo quando cancelar o download do servidor vai saber sobre o pedido - e provavelmente pode até mesmo distinguir que o download foi abortada.
Bergi 13/01
4

Se ... você cancelar antes que algo seja salvo, o "servidor" notará / registrará isso como um download?

Um servidor remoto não deve notar nenhuma atividade de download, pois nenhum download foi iniciado.

No entanto, um servidor remoto sabe que você já baixou a imagem para exibi-la no navegador ... e uma cópia estará no cache do navegador ...

Qualquer "entidade" que monitore sua máquina local diretamente pode registrar algo sobre essa atividade.

DavidPostill
fonte
2
"Salvar como ..." fará uma solicitação, não é? O navegador precisa saber qual nome sugerir. A url pode ser simples / download, mas o Content-Dispositioncabeçalho conterá o nome do arquivo real.
data
1
@data No. O nome está no html da página baixada.
DavidPostill
1
Observe que alguns navegadores, como o Chrome, fazem o pré-download e o cache de URLs que aparecem na página da web que você está visitando.
Tobia Tesan 13/01
3
@DavidPostill Você está enganado. O nome pode ser substituído pelo Content-Dispositioncabeçalho (já mencionado a você algumas vezes), o que significa que uma solicitação deve ser feita primeiro. Além disso, os navegadores podem iniciar o download da carga útil antes de você escolher um diretório de destino.
Lightness Races com Monica
6
Todos os navegadores da Web que eu conheço iniciarão o download assim que você clicar no link e o fizerem pelo menos nos últimos vinte anos. Eles não esperam que você escolha um nome de arquivo - eles serão salvos em um arquivo temporário (ou memória) e o renomearão quando você clicar em "OK".
Mark