Подтвердить что ты не робот

Кэш в CDN, но не в браузере

В настоящее время я использую Akamai как CDN, но я заметил, что браузер также кэширует контент. Замечательно, что браузер кэширует изображения /css/js, но я хотел бы знать, есть ли способ не кэшировать в браузере, а кэшировать в Akamai.

Теперь, прямо сейчас из моего источника, я отправляю заголовки следующим образом:

Cache-Control: public, must-revalidate, max-age=300
Expires: Sun, 19 Feb 2012 19:04:30 GMT
Date: Sun, 19 Feb 2012 18:59:30 GMT

Akamai чтит эти заголовки, но также передает их обратно пользователю. Это делает так, что браузер также кэширует контент.

Это отлично работает большую часть времени, но у нас также есть некоторая логика CDN, если пользователь имеет зарегистрированный файл cookie, чтобы обойти кеш CDN и перейти к исходному.

Итак, если скажем, что пользователь без авторизации находится на клике "login", они затем отправляются через процесс входа в систему и возвращаются на ту же страницу. Несмотря на то, что CDN запрашивал у источника для этой страницы, браузер действительно запрашивает одну и ту же страницу снова, и похоже, что логин не работал.

Теперь я могу заставить процесс входа добавить параметр запроса как? l = 1 или что-то еще, но должен быть лучший способ.

Я испытываю соблазн увидеть, может ли Akamai перезаписать заголовок Cache-Control на жестко закодированное значение no-cache, но мне интересно, есть ли способ сделать это по происхождению?

Спасибо!

4b9b3361

Ответ 1

Akamai имеет заголовок "Edge-control" того же формата, что и Cache-Control. Вы можете указать Edge-control с положительным максимальным возрастом, а затем установить Cache-Control в "no-cache, no-store". Это должно получить то, что вы хотите.

При отправке заголовка Edge-control для страницы, которую я хочу кэшировать, я всегда предшествую значению с помощью "! no-store", чтобы убедиться, что Akamai кэширует его. Таким образом, формат был бы "! No-store, max-age = 1234", например.

Ответ 2

Akamai предоставляет средства для установки различного поведения кеширования в серверах Akamai против обычных заголовков Cache-Control: и Expires:. Существуют специальные заголовки, которые вы можете передать с ваших исходных серверов, которые пограничные серверы Akamai понимают, подчиняются и стираются, когда они передают контент в браузер. Эта информация доступна в документации портала Akamai.

В вашем случае вы хотите, чтобы поведение изменилось в зависимости от того, вошел ли пользователь в систему или нет. Вы можете спросить, что объект обходит кеш, когда объект доставляется в браузер для зарегистрированных пользователей, или вы можете использовать значения cookie для изменения ключа кеша (как объект ссылается сервером Akamai), но вам может понадобиться поговорить с Акамаем о помощи здесь.

Вам нужно быть очень осторожным, чтобы гарантировать, что что-то персонализированное не может быть просмотрено другими пользователями кеша Akamai. Если вы сомневаетесь, ошибайтесь на стороне осторожности и не позволяйте Akamai кэшировать объект.