HTTP-header udløber og Cache-kontrol
1. Koncept
Cache-kontrol bruges til at styre HTTP-caching (er muligvis ikke delvist implementeret i HTTP/1.0, kun Pragma: no-cache er implementeret)
Formatering i pakken:
Cache-Control: cache-directive
cache-direktiv kan være følgende:
Anmodning: | "no-cache" | "no-shop" | "max-alder" "=" delta-sekunder | "max-stale" [ "=" delta-sekunder ] | "min-frisk" "=" delta-sekunder | "Ingen-forvandling" | "Kun hvis-cachet" | "cache-udvidelse"
Svar: | "offentlig" | "privat" [ "=" <"> feltnavn <"> ] | "no-cache" [ "=" <"> feltnavn <"> ] | "no-shop" | "Ingen-forvandling" | "Skal-genvalidere" | "proxy-revalidere" | "max-alder" "=" delta-sekunder | "s-maxage" "=" delta-sekunder | "cache-udvidelse"
En del af beskrivelsen: Opdelt i cachebar eller ej Public angiver, at svaret kan caches af ethvert cacheområde. Private angiver, at hele eller dele af en enkelt brugers svarbesked ikke kan behandles af den delte cache. Dette tillader serveren kun at beskrive, når brugeren er Delvis svarbesked, som ikke er gyldig for forespørgsler fra andre brugere. no-cache angiver, at anmodningen eller svarbeskeden ikke kan caches (HTTP/1.0 erstattes af Pragmas no-cache) Alt efter hvad der kan caches No-store bruges til at forhindre, at vigtig information utilsigtet bliver offentliggjort. At sende en anmodningsbesked vil gøre anmodnings- og svarbeskederne ikke cache. Timeout ifølge cachen Max-age angiver, at klienten kan modtage et svar med en levetid på højst en angivet tid (i sekunder). min-fresh angiver, at klienten kan modtage et svar med en svartid kortere end den aktuelle tid plus den angivne tid. Max-forstående indikerer, at klienten kan modtage svarbeskeder ud over timeout-perioden. Hvis du angiver en værdi for max-stale-beskeden, kan klienten Modtag svarbeskeder, der overstiger den angivne værdi af overtidsperioden. Udløb repræsenterer eksistenstiden, hvilket tillader klienten ikke at tjekke (lave en anmodning) før dette tidspunkt, hvilket svarer til max-age Effekt. Men hvis de eksisterer samtidig, bliver de overskrevet af Cache-Controls maksimale alder. Format: Udløber = "Udløber" ":" HTTP-dato For eksempel
Expires: Thu, 01 Dec 1994 16:00:00 GMT (必须是GMT格式)
2. Anvendelse Sæt udløb og cache-kontrol via META over HTTP <meta http-equiv="Cache-Control" content="max-age=7200" /> <meta http-equiv="Udløber" content="Man, 20. jul 2009 23:00:00 GMT" /> Ovenstående indstillinger er blot eksempler, og du kan faktisk bruge en af dem. Hvis du skriver det på denne måde, gælder det kun for websiden, ikke for billeder eller andre forespørgsler på websiden, og det vil ikke lave nogen cache. På den måde vil klienten have flere forespørgsler, og selvom det bare er noget, der tjekker Sidst ændret-status, vil antallet af forespørgsler helt sikkert påvirke browsinghastigheden. Hvis du vil tilføje cache til en fil, kan du bruge Apaches mod_expire-modul, som er skrevet som <IfModule mod_expires.c> Udløber Aktiv UdløberStandard "adgang plus 1 dag" </IfModule> Jeg kan huske, at ExpiresActive er sat til Tændt, jeg satte det ikke til i starten, og det virker som om, uanset hvor meget YSlow er, kan jeg ikke finde caching-mekanismen. Hvis du tilføjer det sådan, vil det som standard være alt. Hvis du vil målrette individuelle MIME-typer, kan du: UdløberByType billede/gif "adgang plus 5 timer 3 minutter" Se Apache Modul mod_expires Derudover, når du klikker på Opdater i browseren, er alle de anmodninger, klienten sender, max-age=0, hvilket indikerer, at anmodningen er valideret og sendt til serveren Hvis du beder om at tjekke cachen og derefter opdaterer den, får du som regel 304 Ikke Ændret, hvilket betyder, at der ikke sker nogen ændring.
|