Какова связь между 3xx и кэшированием на облачном фронте? - PullRequest
0 голосов
/ 24 апреля 2019

Я столкнулся с этой проблемой и попытался разобраться в кешировании и перенаправлении. Основываясь на том, что я прочитал 301 и 302 http протокол , вот как я это вижу, a request sends to server (in this case cloudfront) and triggers a direction (основываясь на конфигурации, но мы предполагаем, что это по умолчанию настройки). В response клиент видит 301 или 302 , что indicates the resources they get back. Если статус 301, означает, что link has permanently moved, therefore new resources will return возвращается к клиенту. В то время как 302 сообщает клиенту, что resource is found and here it is, without doing any further action.

"Если ваш источник возвращает код состояния 301 или 307, CloudFront не выполняет перенаправление на новое местоположение."

Значит ли это, что из приведенной выше цитаты 301/307 вернет кэшированный ресурс из бэкэнда? Использует ли Cloudfront код состояния для перенаправления, отличного от указанного?

Я знаю, что у меня слишком много вопросов в одном посте, но моя главная задача - кэширование и перенаправление. Может ли кто-нибудь объяснить эти отношения непрофессионалом? Заранее спасибо

Кстати, вот как я запускаю перенаправление:

Перейдите к https://example.com/index.html

<!DOCTYPE html>
<head>
  <meta http-equiv="refresh" content="0; url=https://example.com/copy/index.html">
  <link rel="canonical" href="https://example.com/copy/index.html">
</head>

Дополнительные примечания:

Объясняет, что мы должны делать для управления нашим кешем в Cloudfront

1 Ответ

1 голос
/ 24 апреля 2019

"Если ваш источник возвращает код состояния 301 или 307, CloudFront не выполняет перенаправление в новое местоположение."

Над строкой означает, что CloudFront направляет ответ клиенту вместо того, чтобы следовать перенаправлению, предоставленному Origin.

Что это делает: Клиент -> CloudFront -> Origin (301) <-> CloudFornt -> Клиент (получает новое местоположение)

Как вы видите, CloudFront направляет заголовок ответа (вместе с кодом состояния) клиенту, и именно клиент должен следовать перенаправлению.

CloudFront не делает: Клиент -> CloudFront -> Origin (301) -> CloudFront (следует за 301 и отправляет запрос в новое местоположение) -> origin

Хотя CloudFront кэширует ответ 3xx, что означает, что в следующий раз, если кто-то сделает такой же запрос, CloudFront обслуживает ответ из своего кэша.

Когда сервер CloudFront 301/307 самостоятельно (не из Origin): Перенаправление HTTP на HTTPS (301 для GET, 307 для POST) или Lambda @ edge, настроенный для этого.

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