Как избежать кэширования клиента с помощью CDN
-
03-07-2019 - |
Вопрос
Работая над проектом в AS3, мне нужно передать несколько файлов в целях тестирования пропускной способности.Файлы должны поступать из CDN (ближайшего прокси-сервера клиента), чтобы сделать тест пропускной способности надежным.
Конечно, если удаленные файлы кэшируются в браузере клиента, тест пропускной способности не будет надежным.
Обычно я добавляю метку времени в переменные GET, чтобы обмануть кеш клиентов.Но я могу себе представить, что это очень плохая практика при работе с CDN.
Итак, мой вопрос:
как заставить обойти кеш клиента для получения новой версии файла без реального изменения запроса?
Заранее спасибо,
Т
РЕДАКТИРОВАТЬ :
В идеале было бы отправить заголовок управления кэшем в URLRequest (спасибо Assaf!).К сожалению, я некоторое время пробовал это, и, похоже, в FlashPlayer он не работает.Даже в сети люди, похоже, пессимистично относятся к этому вопросу.
Быстрый пример:
var headers:Array = new Array(new URLRequestHeader("Cache-Control", "no-cache"));
urlRequest.requestHeaders = headers;
urlRequest.load(url);
Кому-нибудь когда-нибудь удавалось заставить что-то подобное работать?
Решение
Правильный способ сделать это — указать заголовки управления кэшем HTTP в вашем запросе или настроить отсутствие кэширования на сервере.
Если у вас есть контроль над сервером, вы можете указать pragma no-cache или что-то подобное, чтобы определенные файлы никогда кэшируется.
Временная метка действительно не такая уж хорошая идея, потому что по пути она может испортить все виды кэшей.