Bir indirme işlemi ne zaman kayıtlıdır?


21

Görüntüleri google resimlerde görüntülerken, yanlışlıkla "resmi farklı kaydet" veya "resmi görüntüle" (bazen bir indirme işlemi de istenebilir) tıklayabilir. Bu daha sonra adı geçen dosyayı indirmek isteyip istemediğinizi soran bir pencere açar. Ancak, bir şey kaydedilmeden iptal ederseniz, bu hala "sunucu" tarafından indirilmiş olarak mı görülüyor? Bu konuda yeterince bilgili olmadığımdan, "sunucu" kullanımım sadece söz konusu etkinliği kaydedebilecek / kaydedebilecek her şeyi kapsar.


4
Kim tarafından kayıtlıdır? Birçok log analiz yazılımı (yani awstats, goaccess), belirli soneklere sahip herhangi bir dosyayı indirmeyi düşünür (.zip, .pdf ...). Uzantıların listesi genellikle yapılandırılabilir. Diğer yazılımlar farklı yaklaşımlar kullanabilir.
jjmontes

Yanıtlar:


52

Sunucu tarafından bakıldığında, "bir tarayıcı penceresinde görüntülemek için aktarma" ile "depolama için indirme" arasında kesinlikle hiçbir teknik fark yoktur .

Belki bir sunucu indirmek için (daha küçük) bir önizleme ve (daha büyük) gerçek görüntü sağlar ve hangisine erişildiğini ayırt edebilir. Ancak, yalnızca bu dosyalara erişimi, isteğin geldiği IP adresini, tarayıcı yazılımının genel bir "kimlik dizesini" kaydedebilir ( istemcinin amacını değil) .

Ancak dosya erişimi her zaman bir istemci bilgisayarla insan etkileşiminden kaynaklanmaz. Bir yandan, tarayıcılar görüntüleri ve diğer web sitesi verilerini "görüntüyü farklı kaydet ..." özelliğini kullanmasanız bile sisteminizde saklar. Öte yandan, birçok tarayıcı gezinmeyi hızlandırmak için önceden "bağlantıları izler" (yani: bir şeyler indir!) . Tarayıcı önbelleği, bu dosyalara asla isteyerek erişmeseniz bile, bu şekilde yerel yedeğinize bile girebilir!

Son olarak, "farklı kaydet" seçeneğini kullanmak ve iptal etmek (bir hedef dosya adı seçmemek), kullandığınız tarayıcının uygulanmasına bağlı olarak bir indirme başlatabilir veya başlatmayabilir.


12
Heck: "farklı kaydet" seçeneği, iptal etmeden bağımsız olarak indirme işlemini başlatabilir veya başlatmayabilir - tarayıcıda zaten bir resim varsa, neden sunucudan tekrar talep etmeli ("önbellek yok" ipuçları ve buna rağmen).
minnmass

6
Aslında, HTTP başlığı açısından bir fark olabilir : tarayıcıdaki bir görünümü, bir indirmeyi gösterir. Content-Dispositioninlineattachment
Uwe Keim,

13
@UweKeim aslında sunucudan bir ipucu. Normalde tarayıcı bunu izler ancak sunucunun müşterinin gerçekten bir tarayıcı olup olmadığını veya bu başlığa saygı gösterip göstermeyeceğini yargılamaya hakkı yoktur. curl https://www.google.com/ -H 'User-Agent: I am really a web browser, trust me' >> /dev/null;)
ElmoVanKielmo

1
... ve bunun teorik olmaktan öte bir şey olduğunu göstermek için PDF’leri düşünün. Tarihsel olarak bunlar tarayıcılar tarafından indirilenler olarak değerlendirilmişlerdir, ancak modern tarayıcılar bunları doğrudan görüntüleyebilir.
MS

1
Tarayıcı , URL vb. Zaten tarayıcının önbelleğinde olmadığı sürece, bir indirme işlemi başlatacaktır. Aksi halde, tarayıcının dosya adının ne olduğunu, dokümanın türünü veya kaydedilecek dosya içeriği olsa bile söyleme yolu yoktur. Tarayıcı sunucuya istek çeşit yayınlayacak ve sunucu olacak ancak istediği "saymak".
Christopher Schultz

7

Bu konuda yeterince bilgili olmadığımdan, "sunucu" kullanımım sadece söz konusu etkinliği kaydedebilecek / izleyebilecek / saklayabilecek her şeyi kapsar.

HTTP sunucusu iptal edilen indirmeyi görmese de, bu gibi olayları izleyen sayfada Javascript kodu olabilir.

Javascript, görüntünün sağ tıklanmasını algılamak için kullanılabilecek olay işleyicilere sahiptir ve birinin açılır menüden ne seçim yaptığınızı tahmin etmek için diğer fare hareketlerini izlemesi olasıdır. Bundan sonra, komut dosyası bilgileri derhal sunucuya kolayca gönderebilir veya yerel tarayıcı deposunda saklayabilir ve daha sonra gönderebilir.

Google Görsel arama özel durumunda, bu sayfadaki Javascript'te fare olaylarını dinleyen birden fazla işleyici bulunur. Bununla birlikte, kod gizlendiğinden, ne tür bir izleme gerçekleştirdiğini söylemek kolay değildir.


1
"Hedefi Farklı Kaydet" genellikle dosya adını, türünü, boyutunu almak için sunucuya başvurur. Muhtemelen bir a HEADyerine bir HTTP isteği ile GET.
Ben Voigt

@BenVoigt, "Hedefi Farklı Kaydet" ile "Resmi Farklı Kaydet" arasında büyük bir fark vardır. Bunlardan biri bağlantılar, diğeri zaten görülebilen ve bu nedenle daha önce indirilmiş olan görüntüler içindir.
Josef

@Josef: Doğru, ancak soruda, OP'nin kendisini önbellekteki içeriğe sınırlamak istediğini belirten hiçbir şey göremiyorum. Aslında, aksine, “bir şey kaydedilmeden iptal et” ifadesiyle güçlü bir öneri görüyorum.
Ben Voigt

6

Bu sunucuya bağlıdır.

İndirme başladığında sunucu kayıt olabilir (bir düşününce bir isim önerdiği için düşünmelisiniz).

Sunucu aynı zamanda kaç baytın aktarıldığını ve bağlantının ne zaman kapatıldığını ve bu yükün tamamlanıp tamamlanmadığını gösterebilir.

Devam eden dowload'lar ve çok iş parçacıklı indirmeler gibi başka olasılıklar da var - ancak yine de sunucu tüm bunları biliyor ve kaydedebiliyordu.

Bir görüntüyü sağ tıklayıp indirme durumunda, istemci tarafında önbellekleme nedeniyle indirme işleminin indirme işlemi yapmaması mümkündür.


Sunucu bir isim önermiyor. Avatarını sağ tıkladığımda ve "resmi farklı kaydet" seçtiğimde ek bir ağ isteği yapılmadı
DavidPostill

9
@DavidPostill İndirmenin nasıl başlatıldığına bağlıdır. Bir bağlantıyı izlerseniz veya bir kaynağa yönlendiriyorsanız ve sunucu yanıt verir, Content-Disposition: attachment; filename="…"böylece tarayıcı indirme istemini gösterir, ardından indirme işlemini iptal ederken bile sunucu istek hakkında bilgi sahibi olur - ve muhtemelen indirme işleminin iptal edildiğini bile ayırt edebilir.
Bergi

4

Bir şey kaydedilmeden önce iptal ederseniz, "sunucu" bunu indirme olarak fark eder / kaydeder mi?

Bir uzak sunucu, hiçbir indirme işleminin başlatılmadığından herhangi bir indirme işlemini farketmemelidir.

Ancak, uzak bir sunucu , resmi tarayıcınızda görüntülemek için görüntüyü zaten indirdiğinizi biliyor ... ve bir kopyası da tarayıcı önbelleğinde olacak ...

Yerel makinenizi doğrudan izleyen herhangi bir "varlık", bu faaliyetle ilgili bir şeyi kaydedebilir.


2
"Farklı kaydet ..." bir istek yapacaktır, değil mi? Tarayıcı, bir tane için hangi ismi önereceğini bilmek zorunda. URL sadece düz / indirme olabilir ancak Content-Dispositionbaşlık asıl dosya adını içerecektir.
veri

1
@data No. Ad, indirilen sayfanın html'sindedir.
DavidPostill

1
Chrome gibi bazı tarayıcıların, ziyaret etmekte olduğunuz web sayfasında görünen URL'leri merakla karşıdan indirme ve önbellekleme yapmadığını unutmayın.
Tobia Tesan

3
@DavidPostill Yanılıyorsunuz. Bu ad, Content-Dispositionbaşlık tarafından geçersiz kılınabilir (zaten birkaç kez size belirtilmiştir), yani bir isteğin önce yapılması gerekir . Ayrıca, tarayıcılar bir hedef dizin seçmeden önce yük yüklemesini başlatabilir ve başlatabilir.
Monica

6
Tanıdığım her web tarayıcısı, bağlantıyı tıklattığınız anda indirmeye başlayacak ve bunu en azından yirmi yıl boyunca yapacaktır. Bir dosya adı seçmenizi beklemeyecekler - geçici bir dosyaya (veya belleğe) kaydedecekler ve "Tamam" a bastığınızda yeniden adlandıracaklar.
Mark
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.