Ta nowa funkcja Amazon CloudFront jest w rzeczywistości niezwykle przydatna w wielu przypadkach użycia, ponieważ trafienie w źródło działa nieco inaczej niż wygląda na pierwszy rzut oka i niekoniecznie stanowi problem, wręcz przeciwnie; chociaż ta funkcja została już wydana wcześniej, wszystko to łączy się z najnowszą wersją Amazon CloudFront - Wsparcie dla treści dynamicznych , np. w przypadku aktualnego pytania:
Zmienny czas życia (TTL) - w wielu przypadkach zawartość dynamiczna albo nie może być buforowana, albo może być buforowana przez bardzo krótki czas, może tylko kilka sekund. W przeszłości minimalny czas TTL CloudFront wynosił 60 minut, ponieważ cała zawartość była uważana za statyczną. Nowa minimalna wartość TTL to 0 sekund. Jeśli ustawisz TTL dla określonego źródła na 0, CloudFront nadal będzie buforował zawartość z tego źródła. Następnie wykona żądanie GET z nagłówkiem If-Modified-Since , dając w ten sposób źródłu szansę zasygnalizowania, że CloudFront może nadal korzystać z zawartości pamięci podręcznej, jeśli nie zmieniła się w miejscu pochodzenia . [podkreślenie moje]
Innymi słowy, użycie TTL równej 0 oznacza przede wszystkim, że CloudFront deleguje uprawnienia do sterowania pamięcią podręczną do źródła, tj. Serwer źródłowy decyduje, czy i przez jaki czas CloudFront buforuje obiekty; zwróć szczególną uwagę, że żądanie GET z nagłówkiem If-Modified-Since nie musi oznaczać, że sam obiekt jest pobierany ze źródła, a raczej źródło może (i powinno) zwrócić kod statusu HTTP 304 - Not Modified tam, gdzie ma to zastosowanie :
Wskazuje, że zasób nie został zmodyfikowany od ostatniego żądania. […]
Korzystanie z tego oszczędza przepustowość i ponowne przetwarzanie zarówno na serwerze, jak i kliencie, ponieważ tylko dane nagłówka muszą zostać wysłane i odebrane w porównaniu z całością strony, która jest ponownie przetwarzana przez serwer, a następnie wysyłana ponownie przy użyciu większej przepustowości serwera i klienta. [podkreślenie moje]
Zobacz doskonały samouczek dotyczący buforowania Marka Nottinghama, aby uzyskać szczegółowe informacje o mechanice i zaletach kontroli pamięci podręcznej HTTP, która jest naprawdę ważną i efektywną częścią architektury HTTP.
Zrozumienie, w jaki sposób wszystkie te części współpracują ze sobą, może być rzeczywiście nieco trudne, zgodnie z tabelą w sekcji Określanie minimalnego czasu buforowania obiektów przez CloudFront dla dystrybucji pobierania w ramach określania, jak długo obiekty pozostają w pamięci podręcznej krawędzi CloudFront (wygaśnięcie obiektu), aby podsumować efekty w przypadku zastosowania w kontekście CloudFront z lub bez TTL = 0 w szczególności.