Nagłówek HTTP Expires i kontrola pamięci podręcznej
1. Koncepcja
Kontrola pamięci podręcznej służy do sterowania buforowaniem HTTP (nie może być częściowo zaimplementowana w HTTP/1.0, zaimplementowana jest tylko Pragma: no-cache)
Format w pakiecie:
Cache-Control: cache-directive
Dyrektywa cache-może być następująca:
Prośba: | "bez cache" | "Brak sklepu" | "maksymalny wiek" "=" delta-sekundy | "maksymalny" [ "=" delta-sekundy ] | "min-fresh" "=" delta-sekund | "Nie-transformacja" | "tylko jeśli-cache" | "rozszerzenie pamięci podręcznej"
Odpowiedź: | "publiczne" | "prywatny" [ "=" <"> nazwa pola <"> ] | "no-cache" [ "=" <"> nazwa pola <"> ] | "Brak sklepu" | "Nie-transformacja" | "Muszę rewalidować" | "Proxy-revalidacja" | "maksymalny wiek" "=" delta-sekundy | "s-maxage" "=" delta-sekundy | "rozszerzenie pamięci podręcznej"
Część opisu: Podzielone na buforowalne czy nie Public oznacza, że odpowiedź może być buforowana przez dowolny obszar cache. Prywatne oznacza, że całość lub część wiadomości odpowiedzi pojedynczego użytkownika nie może być przetwarzana przez współdzieloną pamięć podręczną. Pozwala to serwerowi opisywać tylko wtedy, gdy użytkownik jest Wiadomość częściowej odpowiedzi, która nie jest ważna dla żądań od innych użytkowników. no-cache oznacza, że komunikat żądania lub odpowiedzi nie może być buforowany (HTTP/1.0 jest zastępowany przez no-cache Pragmy) Według tego, co można przechowywać Brak magazynu jest stosowany, aby zapobiec przypadkowemu publikowaniu ważnych informacji. Wysłanie wiadomości z żądaniem sprawi, że komunikaty prośby i odpowiedzi nie będą buforowane. Timeout według pamięci podręcznej maksymalny wiek oznacza, że klient może otrzymać odpowiedź o czasie życia nie większym niż określony czas (w sekundach). min-fresh oznacza, że klient może otrzymać odpowiedź z czasem odpowiedzi krótszym niż obecny czas plus określony czas. max-stale oznacza, że klient może otrzymywać wiadomości odpowiedzi po upływie okresu przekroczenia czasu. Jeśli określisz wartość dla wiadomości max-stale, klient może Otrzymuj wiadomości odpowiadające przekraczające określoną wartość okresu nadgodzin. Terminy wygasania oznaczają czas istnienia, co pozwala klientowi nie sprawdzać (nie składać żądania) przed tym czasem, który odpowiada maksymalnemu wieku Efekt. Ale jeśli istnieją jednocześnie, są nadpisywane przez maksymalny wiek Cache-Control. Format: Wygasa = "Wygasa" ":" HTTP-data Na przykład
Expires: Thu, 01 Dec 1994 16:00:00 GMT (必须是GMT格式)
2. Zastosowanie Zestaw wygasa i kontrola pamięci podręcznej za pomocą META przez HTTP <meta http-equiv="Cache-Control" content="max-age=7200" /> <meta http-equiv="Expires" content="Pn, 20 lip 2009 23:00:00 GMT" /> Powyższe ustawienia to tylko przykłady i faktycznie możesz użyć jednego z nich. Jeśli napiszesz to w ten sposób, jest ono ważne tylko dla strony internetowej, nie dla obrazów czy innych próśb na stronie, i nie będzie było żadnej pamięci podręcznej. Dzięki temu klient będzie miał więcej żądań, a choć jest to tylko sprawdzenie statusu Ostatnio zmodyfikowane, liczba żądań zdecydowanie wpłynie na szybkość przeglądania. Jeśli chcesz dodać pamięć podręczną do pliku, możesz użyć modułu mod_expire Apache, który jest napisany jako <IfModule mod_expires.c> WygasaAktywne w dniu ExpiresDomyślny "dostęp plus 1 dzień" </IfModule> Pamiętam, że ExpiresActive jest ustawiony na Włączony, na początku go nie włączałem i wygląda na to, że bez względu na to, jak bardzo jest YSlow, nie mogę znaleźć mechanizmu buforowania. Jeśli dodasz to w ten sposób, domyślnie pojawi się wszystko. Jeśli chcesz celować w poszczególne typy MIME, możesz: ExpiresByType image/gif "access plus 5 hours 3 minutes" Zobacz moduł Apache mod_expires Dodatkowo, gdy klikasz Odśwież w przeglądarce, żądania wysyłane przez klienta są wszystkie maksymalnie wiekowe=0, co oznacza, że żądanie zostało zweryfikowane i wysłane na serwer Jeśli poprosisz o sprawdzenie pamięci podręcznej i jej aktualizację, zazwyczaj otrzymasz 304 Not Modified, co oznacza, że nie ma żadnych zmian.
|