Коли завантаження зареєстровано як таке?


21

Під час перегляду зображень на зображеннях у Google можна випадково натиснути кнопку "Зберегти зображення як" або "переглянути зображення" (що іноді також викликає завантаження). Після цього відкриється вікно із запитом про те, чи потрібно завантажити цей файл. Однак, якщо ви скасуєте, перш ніж що-небудь зберігається, це все ще розглядається як завантаження з боку "сервера"? Оскільки я не дуже добре розбираюся в цій темі, моє використання "сервера" просто охоплює будь-яку організацію, яка може записувати / зберігати згадану діяльність.


4
Зареєстрований як такий? Багато програмне забезпечення аналізу журналів (тобто awstats, goaccess) вважає завантаження будь-якого файлу з певним суфіксом (.zip, .pdf ...). Список розширень зазвичай налаштовується. Інше програмне забезпечення може використовувати різні підходи.
jjmontes

Відповіді:


52

Побачений з боку сервера, є абсолютно ні технічна різниця між "передачею для перегляду у вікні браузера" та "завантаженням для зберігання".

Можливо, сервер надасть (менше) попередній перегляд і (більший) реальний образ для завантаження, і він може розрізнити, який з них був доступний. Але він може реєструвати (і реєструвати) тільки доступ до цих файлів, IP-адреса, з якого надходить запит, загальний "рядок id" програмного забезпечення браузера - ні наміри клієнта.

Але доступу до файлів немає завжди результат від взаємодії людини з клієнтським комп'ютером. З одного боку, браузери зберігають зображення та інші дані веб-сайту у вашій системі, навіть якщо ви навіть не використовуєте "зберегти зображення як ...". З іншого боку, багато браузерів навіть "слідують за посиланнями" (тобто: завантажують речі!) наперед , щоб прискорити навігацію. Кеш браузера навіть може потрапити до вашої локальної резервної копії, навіть якщо ви ніколи не навмисно зверталися до цих файлів!

Нарешті, використання "зберегти як" і скасування (не вибравши назву файла призначення) може або не може ініціювати завантаження, залежно від реалізації використовуваного браузера.


12
Heck: "зберегти як" може ініціювати завантаження, незважаючи на скасування - якщо у браузері вже є зображення, навіщо запитувати його з сервера ("не кеш", але незважаючи на це).
minnmass

6
Власне, там може бути різниця в термінах Content-Disposition Заголовок HTTP : inline вказує на перегляд у веб-переглядачі, attachment завантажити.
Uwe Keim

13
@UweKeim насправді натяк на сервер. Зазвичай браузер буде слідувати за цим, але сервер не має можливості судити, чи є клієнт насправді браузером, або якщо він буде поважати цей заголовок. curl https://www.google.com/ -H 'User-Agent: I am really a web browser, trust me' >> /dev/null ;)
ElmoVanKielmo

1
... і щоб показати, що це більше, ніж теоретичне, розглянемо PDF. Історично вони розглядалися браузерами як завантаження, але сучасні браузери можуть безпосередньо відображати їх.
MSalters

1
Браузер волі ініціювати завантаження, якщо ця URL-адреса й т.д. вже перебуває в кеші браузера. В іншому випадку браузер не має можливості визначити, яке ім'я файлу може бути, тип документа, який він є, або навіть якщо вміст файлу зберігається. Браузер видасть якийсь запит на сервер і сервер волі "розраховувати", що, однак, хоче.
Christopher Schultz

7

Оскільки я не дуже добре розбираюся в цій темі, моє використання "сервера" просто охоплює будь-який суб'єкт, який може записувати / дивитися / зберігати згадану діяльність.

Хоча HTTP-сервер не бачить скасованого завантаження, на сторінці, що відстежує подібні події, може бути код Javascript.

Javascript має обробники подій, які можуть бути використані для виявлення правого кліку на зображенні, і цілком імовірно, що можна відстежувати інші рухи миші, щоб здогадатися, який вибір ви зробите з контекстного меню. Після цього скрипт може легко відправити інформацію на сервер негайно, або зберегти його в локальному сховищі браузера і надіслати його пізніше.

У конкретному випадку пошуку зображень Google Javascript на цій сторінці має декілька обробників, які слухають події миші. Проте код заплутований, тому нелегко визначити, який саме моніторинг він робить.


1
"Зберегти ціль як" зазвичай зв'язується з сервером, щоб отримати ім'я файлу, тип, розмір. Можливо з HEAD Запит HTTP, а не GET.
Ben Voigt

@BenVoigt існує велика різниця між "Зберегти ціль як" і "зберегти зображення як". Один - для посилань, інший - для зображень, які вже є видимими і тому були завантажені раніше.
Josef

@Josef: Правда, але я нічого не бачу в питаннях, які вказують, що OP хоче обмежитися вмістом, що вже знаходиться в кеші. Насправді я бачу сильну пропозицію навпаки, у фразі "скасувати, перш ніж нічого не врятується".
Ben Voigt

6

Це залежить від сервера.

Сервер зможе зареєструватись при запуску завантаження (подумайте про це, він повинен знати, оскільки він пропонує назву).

Сервер може також відслідковувати, скільки байтів було передано, і якщо / коли з'єднання закрито, що може показати, якщо завантаження завершено.

Є й інші можливості, такі як відновлення завантажень і багатопотокових завантажень - але знову ж таки, сервер може знати і записувати все це.

Зверніть увагу, що в конкретному випадку клацання правою кнопкою миші і завантаження зображення можливо, що завантаження не буде зареєстровано як завантаження взагалі через кешування клієнтської сторони.


Сервер не пропонує назву. Жодних додаткових мережевих запитів не було зроблено, коли я клацнув правою кнопкою миші на вашому аватарі та вибрав "зберегти зображення як"
DavidPostill

9
@DavidPostill Залежить від того, як розпочато завантаження. Якщо ви переходите за посиланням або перенаправляєте на ресурс, і сервер відповідає Content-Disposition: attachment; filename="…" щоб веб-переглядач показував запит на завантаження, потім навіть при скасуванні завантаження сервер дізнається про запит - і, можливо, може навіть розрізнити, що завантаження було перервано.
Bergi

4

Якщо ... ви скасуєте, доки нічого не збережеться, чи "сервер" помітить / запише це як завантаження?

Віддалений сервер не повинен помічати жодного завантаження, оскільки завантаження не розпочато.

Однак віддалений сервер знає, що ви вже завантажили зображення для того, щоб відобразити його у вашому веб-переглядачі ... і копія буде в кеші вашого веб-переглядача ...

Будь-який "об'єкт", який контролює вашу локальну машину, може безпосередньо записати щось відносно цієї діяльності.


2
"Зберегти як ..." зробить запит, чи не так? Браузер повинен знати, яке ім'я можна запропонувати. URL може бути просто / завантажити, але Content-Disposition Заголовок містить фактичне ім'я файлу.
data

1
@data No. Ім'я знаходиться в html завантаженої сторінки.
DavidPostill

1
Зауважте, що деякі веб-переглядачі, такі як Chrome, з нетерпінням попередньо завантажують та кешують URL-адреси, які відображаються на веб-сторінці, яку ви відвідуєте.
Tobia Tesan

3
@DavidPostill Ви помиляєтеся. Назва може бути замінено на Content-Disposition Заголовок (вже згаданий вам кілька разів), що означає запит обов'язково спочатку. Крім того, браузери можуть і починають завантаження корисного навантаження, перш ніж ви вибрали каталог призначення.
Lightness Races in Orbit

6
Кожен веб-браузер, з яким я знаю, почне завантаження, як тільки ви натиснете посилання, і зробите це протягом останніх двадцяти років. Вони не будуть чекати, поки ви оберете ім'я файлу - вони збережуть у тимчасовому файлі (або пам'яті) і перейменують його після того, як ви натиснете "OK".
Mark
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.