Odpowiedzi:
Cache-Controlzostał wprowadzony w HTTP / 1.1 i oferuje więcej opcji niż Expires. Można ich użyć do osiągnięcia tego samego, ale wartość danych dla Expiresjest datą HTTP, podczas gdy Cache-Controlmaksymalny wiek pozwala określić względny czas, dzięki czemu można określić „X godzin po zażądaniu strony”.
Kontrola bufora HTML jest bardzo podobnym pytaniem i zawiera dobry link do samouczka buforowania, który powinien odpowiedzieć na większość twoich pytań (np. Http://www.mnot.net/cache_docs/#EXPIRES ). Podsumowując, Expireszalecane jest w przypadku zasobów statycznych, takich jak obrazy, i Cache-Controlgdy potrzebujesz większej kontroli nad sposobem buforowania.
Jeśli korzystasz z sieci CDN (Cloud Delivery Network), zalecam użycie Cache-Control z maksymalnym czasem trwania w sekundach. Na przykład Kontrola pamięci podręcznej: maks. Wiek = 604800. Zapobiega to szczytom żądań do twojego serwera źródłowego: „Wygaśnięcie śr., 30 października 20xx 04:37:07 GMT” wszystkie przeglądarki będą Cię o to pytać jednocześnie.
cache-control. Więc nie rozumiem, dlaczego byłyby szczytowe żądania przy użyciuExpires:
Zgodnie z tym artykułem Google Developers buforowanie HTTP :
Nagłówek kontroli pamięci podręcznej został zdefiniowany jako część specyfikacji HTTP / 1.1 i zastępuje poprzednie nagłówki (np. Wygasa) używane do definiowania zasad buforowania odpowiedzi. Wszystkie nowoczesne przeglądarki obsługują Cache-Control, dlatego to wszystko, czego potrzebujemy.
Kontrola pamięci podręcznej została zdefiniowana w HTTP / 1.1, informuje wszystkie mechanizmy buforowania od serwera do klienta, czy mogą buforować ten obiekt. Mierzy się ją w sekundach: Cache-Control: max-age=3600.
Pole Expiresnagłówka podaje datę / godzinę, po której odpowiedź jest uważana za nieaktualną. Expires wartość jest HTTP data timestamp: Expires: Tue, 18 Jul 2017 16:07:23 GMT.
Jeśli odpowiedź zawiera Cache-Controlpole z max-agedyrektywą, odbiorca MUSI zignorować to Expirespole.
Heroku devcenter ma doskonały artykuł na ten temat.
Cytując z tego
Podczas gdy nagłówek Cache-Control włącza buforowanie po stronie klienta i ustawia maksymalny wiek zasobu, nagłówek Expires służy do określania określonego momentu, w którym zasób nie jest już ważny.
Z wyjątkiem prywatnych / publicznych opcji CC, nie widzę żadnej różnicy. Gdy używasz wygasania, np. „Dostęp plus 1 rok / miesiąc / tydzień / dzień”, działa dokładnie tak samo jak CC.
Jeśli nadal jesteś zainteresowany, pozostawiam to zalecenie bezpośrednio od chłopców z Google. https://developers.google.com/speed/docs/insights/LeverageBrowserCaching Wolą wygasać przed Cache-Control