Kapan unduhan terdaftar?

21

Saat melihat gambar di gambar google, orang mungkin tidak sengaja mengklik "simpan gambar sebagai", atau "lihat gambar" (yang entah bagaimana kadang-kadang meminta unduhan juga). Ini kemudian membuka jendela yang menanyakan apakah Anda ingin mengunduh file tersebut. Namun, jika Anda membatalkan sebelum sesuatu disimpan, apakah ini masih dilihat sebagai unduhan dari sisi "server"? Karena saya tidak begitu berpengalaman dalam topik ini, saya menggunakan "server" hanya mencakup entitas apa pun yang dapat merekam / menyimpan aktivitas tersebut.

Felix R
sumber
4
Terdaftar seperti itu oleh siapa? Banyak perangkat lunak analisis log (mis. Awstats, goaccess) mempertimbangkan pengunduhan file apa pun dengan sufiks tertentu (.zip, .pdf ...). Daftar ekstensi biasanya dapat dikonfigurasi. Perangkat lunak lain dapat menggunakan pendekatan yang berbeda.
jjmontes

Jawaban:

52

Dilihat dari sisi server, sama sekali tidak ada perbedaan teknis antara "mentransfer untuk dilihat di jendela browser" dan "mengunduh untuk penyimpanan".

Mungkin server akan memberikan pratinjau (lebih kecil) dan gambar nyata (lebih besar) untuk diunduh, dan dapat membedakan mana yang telah diakses. Tetapi ia dapat mendaftarkan (dan mencatat) hanya akses ke file-file ini, alamat IP yang berasal dari permintaan, "string id" generik dari perangkat lunak browser - bukan maksud klien.

Tetapi akses file tidak selalu merupakan hasil dari interaksi manusia dengan komputer klien. Di satu sisi, browser menyimpan gambar dan data situs web lain di sistem Anda, bahkan jika Anda bahkan tidak menggunakan "save image as ...". Di sisi lain, banyak browser bahkan "mengikuti tautan" (yaitu: unduh hal-hal!) Di muka , untuk mempercepat navigasi. Tembolok peramban bahkan mungkin masuk ke cadangan lokal Anda dengan cara itu, bahkan jika Anda tidak pernah dengan sengaja mengakses file-file ini!

Akhirnya, menggunakan "simpan sebagai" dan membatalkan (tidak memilih nama file tujuan) dapat atau tidak dapat memulai unduhan, tergantung pada implementasi browser yang Anda gunakan.

jvb
sumber
12
Heck: "save as" mungkin atau mungkin tidak memulai unduhan, terlepas dari pembatalan - jika browser sudah memiliki gambar, mengapa memintanya dari server lagi ("tidak ada cache" petunjuk dan meskipun demikian).
minnmass
6
Sebenarnya, mungkin ada perbedaan, dalam hal Content-Dispositiontajuk HTTP : inlinemenunjukkan tampilan di browser, attachmentunduhan.
Uwe Keim
13
@ UweKeim itu sebenarnya petunjuk dari server. Biasanya browser akan mengikutinya tetapi server tidak memiliki cara untuk menilai apakah klien sebenarnya adalah browser atau apakah itu akan menghormati header ini. curl https://www.google.com/ -H 'User-Agent: I am really a web browser, trust me' >> /dev/null;)
ElmoVanKielmo
1
... dan untuk menunjukkan bahwa ini lebih dari sekadar teori, pertimbangkan PDF. Secara historis mereka telah diperlakukan oleh browser sebagai unduhan, tetapi browser modern dapat langsung menampilkannya.
MSalters
1
Browser akan memulai unduhan kecuali URL itu, dll. Sudah ada dalam cache browser. Kalau tidak, browser tidak memiliki cara untuk mengetahui apa nama file itu, jenis dokumen itu, atau bahkan jika ada konten file untuk disimpan. Browser akan mengeluarkan beberapa jenis permintaan ke server, dan server akan "menghitung" yang diinginkannya.
Christopher Schultz
7

Karena saya tidak begitu berpengalaman dalam topik ini, saya menggunakan "server" hanya mencakup entitas apa pun yang dapat merekam / menonton / menyimpan aktivitas tersebut.

Meskipun server HTTP tidak melihat unduhan yang dibatalkan, mungkin ada kode Javascript pada halaman yang memantau acara tersebut.

Javascript memiliki pengendali acara yang dapat digunakan untuk mendeteksi klik kanan pada gambar, dan sangat mungkin seseorang dapat memonitor pergerakan mouse lainnya untuk menebak pilihan apa yang Anda buat dari menu popup. Setelah itu, skrip dapat dengan mudah mengirim informasi ke server segera, atau menyimpannya di penyimpanan browser lokal dan mengirimkannya nanti.

Dalam kasus spesifik pencarian Gambar Google, Javascript pada halaman itu memang memiliki banyak penangan yang mendengarkan acara mouse. Namun kode ini dikaburkan sehingga tidak mudah untuk mengetahui jenis pemantauannya.

jpa
sumber
1
"Save Target As" biasanya akan menghubungi server untuk mendapatkan nama file, jenis, ukuran. Mungkin dengan HEADpermintaan HTTP daripada a GET.
Ben Voigt
@BenVoigt ada perbedaan besar antara "Save Target As" dan "save image as". Satu untuk tautan, lainnya untuk gambar yang sudah terlihat dan karenanya telah diunduh sebelumnya.
Josef
@ Josef: Benar, tapi saya tidak melihat apa pun dalam pertanyaan yang menunjukkan OP ingin membatasi dirinya untuk konten yang sudah ada dalam cache. Sebenarnya saya melihat saran yang kuat untuk sebaliknya, dalam frasa 'batal sebelum sesuatu diselamatkan'.
Ben Voigt
6

Ini tergantung server.

Server akan dapat mendaftar ketika unduhan dimulai (pikirkanlah, ia harus tahu karena ini menunjukkan nama).

Server juga dapat melacak berapa byte yang ditransfer dan jika / ketika koneksi ditutup, yang dapat menunjukkan apakah diwnload selesai.

Ada juga kemungkinan lain seperti resume dowload dan unduhan multithreaded - tetapi sekali lagi, server bisa mengetahui dan merekam semua ini.

Perhatikan bahwa dalam kasus tertentu mengklik kanan dan mengunduh gambar, mungkin saja unduhan itu tidak akan didaftarkan sebagai unduhan sama sekali karena caching sisi klien.

davidgo
sumber
Server tidak menyarankan nama. Tidak ada permintaan jaringan tambahan yang dibuat ketika saya mengklik kanan avatar Anda dan memilih "save image as"
DavidPostill
9
@ DavidPostill Tergantung pada bagaimana pengunduhan dimulai. Jika Anda mengikuti tautan atau mengalihkan ke sumber daya, dan server merespons dengan Content-Disposition: attachment; filename="…"sehingga browser menampilkan permintaan unduhan, maka bahkan ketika membatalkan unduhan server akan tahu tentang permintaan - dan mungkin bahkan dapat membedakan bahwa unduhan dibatalkan.
Bergi
4

Jika ... Anda membatalkan sebelum sesuatu disimpan, apakah "server" memperhatikan / merekam ini sebagai unduhan?

Server jarak jauh seharusnya tidak melihat aktivitas pengunduhan karena tidak ada pengunduhan telah dimulai.

Namun, server jauh tahu bahwa Anda telah mengunduh gambar untuk menampilkannya di peramban Anda ... dan salinannya akan ada di cache peramban ...

"Entitas" yang memonitor mesin lokal Anda secara langsung dapat merekam sesuatu mengenai aktivitas itu.

DavidPostill
sumber
2
"Simpan sebagai ..." akan membuat permintaan, bukan? Peramban harus tahu nama apa yang disarankan, untuk satu. Url mungkin sederhana / unduh tetapi Content-Dispositionheader akan berisi nama file yang sebenarnya.
data
1
@ data No. Namanya ada di html halaman yang diunduh.
DavidPostill
1
Harap perhatikan bahwa beberapa peramban seperti Chrome mengunduh dengan cepat dan menembolok URL yang muncul di laman web yang Anda kunjungi.
Tobia Tesan
3
@ DavidPostill Anda salah. Nama dapat diganti oleh Content-Dispositiontajuk (sudah disebutkan beberapa kali kepada Anda), artinya permintaan harus dibuat terlebih dahulu. Selain itu, browser dapat dan mulai mengunduh unduhan sebelum Anda memilih direktori tujuan.
Lightness Races dengan Monica
6
Setiap peramban web yang saya kenal akan mulai mengunduh segera setelah Anda mengeklik tautan, dan telah melakukannya setidaknya selama dua puluh tahun terakhir. Mereka tidak akan menunggu Anda untuk memilih nama file - mereka akan menyimpan ke file sementara (atau memori) dan memberi nama baru setelah Anda menekan "OK".
Tandai