Работает ли Cache для частично загруженных файлов? - PullRequest
1 голос
/ 21 июля 2011

Это не «вопрос кодирования», а скорее что-то вроде «как это работает?».

Давайте рассмотрим, я хочу показать тяжелую картинку на странице 2. Если я предварительно загружаю эту картинку на страницу 1 (без отображения) и нажимаю на ссылку на страницу 2, прежде чем она полностью загрузится ... Что происходит?

=> Страница 2 загружается, и конец тяжелой картинки также загружается, или кэш не работает для частично загруженных файлов?

Спасибо за ваши объяснения,

CH

1 Ответ

0 голосов
/ 31 марта 2012

Теоретически вполне возможно, что часть ответа кэшируется либо веб-браузером, либо прокси-сервером между конечным пользователем и веб-сервером.http поддерживает диапазон запросов , где клиент может запросить определенный фрагмент общего ресурса (например, изображение).Все громкие веб-серверы поддерживают запросы диапазонов.

Я действительно не знаю, если какой-либо веб-браузер кэширует частично загруженный ресурс, хотя это будет простой тест - очистите кеш веб-браузера, нажмитевеб-страница, которая загружает большой внешний объект, прекратите загрузку в середине.Убедитесь, что веб-сервер отправляет следующие заголовки вместе с ответом.

cache-control: max-age=10000
accept-ranges: bytes

Теперь сделайте запрос еще раз, но посмотрите на заголовки http запроса, чтобы найти браузер, запрашивающий частичное содержимое, например Range: bytes=100000-90000000.Очевидно, он будет запрашивать только частичное содержимое, если он частично кэшировал файл.

Заголовок max-age сообщает браузеру, что файл может быть кэширован некоторое время, а заголовки accept-range сообщают браузеру веб-серверспособен обслуживать частичные запросы контента.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...