На сервере свойства файла тоже хранятся в файловой системе или в БД или по разному в зависимости от того как настроен сервер?
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 и обратно и таким образом
стерилизовать некоторые из них.