@Drovosek01

Как или почему загружаются и скачиваются свойства файла?

При скачивании файлов на Windows свойство "Дата создания" у файла не та, которая является моментом начала скачивания файла, а непосредственно дата создания файла.
Например при скачивании этого файла в Проводнике в Windows 10 дата создания указана 21.11.2023 22:45
https://www.upload.ee/files/15992284/Patch_v21.zip.html
Хотя сейчас 28.11.2023 (текущая дата когда я его скачиваю).

Насколько мне известно свойства файла, такие как дата создания и дата изменения, которые отображаются в Проводнике - не хранятся в теле самого файла. Их хранит файловая система где-то в своей "базе данных".

Получается когда я загружаю файл через браузер на сервер - помимо самого файла (то есть байт которыми является этот файл) браузер у файловой системы запрашивает все свойства файла и тоже отправляет их на сервер? И потом при скачивании файла, сервер также отдает все свойства файла?
- Если да, то как это происходит? (свойства файла передаются в общей массе байт при загрузке скачивании/файла или в http заголовках или как?)
- На сервере свойства файла тоже хранятся в файловой системе или в БД или по разному в зависимости от того как настроен сервер?
- Браузер загружает вообще все свойства файла которые у него есть в файловой системе? (наверняка же есть как-бы кастомные свойства, которые можно заполнить разными данным по несколько килобайт - такие свойства тоже будут загружаться и скачиваться?)
- Расширенные аттрибуты файлов в данном контексте (например те, которые в macOS можно посмотреть через xattr) это тоже самое что и свойства файла и они также будут загружаться и скачиваться или они не относятся к свойствам файла?
  • Вопрос задан
  • 144 просмотра
Решения вопроса 1
mayton2019
@mayton2019
Bigdata Engineer
На сервере свойства файла тоже хранятся в файловой системе или в БД или по разному в зависимости от того как настроен сервер?

HTTP протокол вообще не оперирует понятием "файл". Он обычно делает responce который может содержать
octet-stream определенной длины. Или неизвестной длины. Этот-же Responce может хранить в себе сет атрибутов. Таких как ETag,
Age, Accept-Range... e.t.c.

Поэтому процесс скачивания чего-либо с интернета - это квест. Чтобы решить этот квест надо ответить на
вопросы - какие атрибуты нам вернул HTTP responce. И какой клиент для скачивания был использован.
Например клиентом может быть не браузер а Curl, Wget, Postman, *Downloader, Скрипт на Python
и многое-многое другое. И все они действуют по разному. Каждый - по своему алгоритму как сделали
создатели этих утилит.

Сами файловые системы тоже отличаются по качеству хранения атрибутов. Например NTFS может приклеивать
к файлу большое количество атрибутов (ACL, Подписи от антивирусов) а файловая система FAT32 имеет
только несколько дат и фиксированное количество легаси атрибутов которые остались еще со времен MS-DOS.
Поэтому чисто приколовшись можно копировать файлы с NTFS в FAT32 и обратно и таким образом
стерилизовать некоторые из них.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Что отдаёт сервер и понимает программа скачивания (например, браузер), то и будет использоваться.
6565c5e1d25e1993263680.png
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы