+  HandyCache форум
|-+  Главная категория» Новые предложения» Оригинальный размер (до сжатия) исходного файла в кэше
Имя пользователя:
Пароль:
Страниц: [1]   Вниз
  Отправить эту тему    Печать  
Автор Тема: Оригинальный размер (до сжатия) исходного файла в кэше  (Прочитано 2934 раз)
0 Пользователей и 1 Гость смотрят эту тему.
olDjeka
Постоялец
***

Репутация: +6/-0
Offline Offline

Сообщений: 117


« : 28 апреля 2014, 15:45:29 »

Одни и те же данные могут отдаваться как в оринальном, так и в сжатом виде. Например, такое может происходить при получении данных через онлайн-прокси (включая анонимные, "китайские" и TOR), также это может зависеть от получаемых сервером данных (IP, User-Agent, Referer, Accept-Language).
В случаях когда файл уже имеется в кэше в сжатом виде, а получение происходит в оринальном (не сжатом), то расширение "Не обновлять файлы по размеру" не может работать полноценно.
Предлагаю дополнить функцию "get_cache_file_content_type" третьим значением:
если значение "Content-Encoding" возвращает значение gzip, то третьим значением возвращается ISIZE (оригинальный размер исходного файла).
Для получения этого значения достаточно прочитать последние четыре байта сжатых данных и конвертировать их из HEX в десятичную систему счичления.
Это позволит в расширении "Не обновлять файлы по размеру" сравнивать размер сжатого файла из кэша и оригинальный размер получаемого не сжатого файла.
« Последнее редактирование: 28 апреля 2014, 16:45:01 от olDjeka » Сообщить модератору   Записан
mai62
Автор HC
*****

Репутация: +226/-4
Offline Offline

Сообщений: 6383


« Ответ #1 : 29 апреля 2014, 00:13:38 »

Это увеличит нагрузку на процессор и диск. Данные будут читаться из файла даже, если они не нужны.
Сообщить модератору   Записан
olDjeka
Постоялец
***

Репутация: +6/-0
Offline Offline

Сообщений: 117


« Ответ #2 : 29 апреля 2014, 01:11:16 »

Предложенный вариант имел целью показать что функция востребована и может быть добавлена в уже имеющуюся. Если же смотреть с такой стороны, то наверное можно добавить и новую функцию, типа "get_cache_file_ISIZE".
« Последнее редактирование: 29 апреля 2014, 01:46:19 от olDjeka » Сообщить модератору   Записан
Страниц: [1]   Вверх
  Отправить эту тему    Печать  

 
Перейти в: