Sintaks: tamat tempoh [masa|epoch|maks|pff] Nilai lalai: offexpires arahan mengawal maklumat pengepala "tamat tempoh" dan "kawalan cache" dalam respons http dan memulakan fungsi mengawal masa cache halaman: anda boleh menggunakan nombor yang betul atau nombor negatif. Nilai pengepala "tamat tempoh" akan ditetapkan dengan menambahkan masa sistem semasa kepada nilai masa yang ditetapkan. Nilai masa juga mengawal nilai "cache-control": nombor negatif menunjukkan tiada cache, nombor positif atau sifar menunjukkan max-age=time epoch: Tentukan nilai "expired" sebagai 1januari,1970,00:00 :01 gmtmax: Nyatakan "tamat tempoh" "Nilai "cache-control" ialah 31disember2037 23:59:59gmt, dan nilai "cache-control" ialah 10 tahun. -1: Tentukan nilai "tamat tempoh" menjadi -1s masa pelayan semasa, yang bermaksud ia akan tamat tempoh selama-lamanya. mati: Jangan ubah suai nilai "tamat tempoh" dan "kawalan cache"
tamat menggunakan masa tertentu dan memerlukan penyegerakan yang ketat antara pelayan dan klien.
Kawalan cache menggunakan arahan umur maksimum untuk menentukan tempoh masa komponen akan dicache.
Untuk pelayar yang tidak menyokong http1.1, tamat tempoh masih perlu dikawal. Oleh itu, lebih baik untuk menentukan dua pengepala respons. Tetapi spesifikasi http menetapkan bahawa arahan umur maksimum akan menulis semula pengepala tamat tempoh.
Jika anda tidak mahu proksi atau penyemak imbas dicache, tambahkan parameter tanpa cache atau parameter peribadi:
# tamat tempoh 1d;
tambah_header cache-control no-cache;
add_header cache-control private ;
Dengan cara ini, apabila penyemak imbas f5 dimuat semula, nilai yang dikembalikan masih 200 dan bukannya 304.
Rekod contoh cache mengawal nginx:
tamat tempoh 1d;
add_header cache-control no- cache;
add_header cache-control private;
jika ( !-e $request_filename) {
tulis semula ^(.*) http://test.zhaopin.com /index.html break;
# add_header cache-control no-cache;
# add_header cache-control private;
Apabila saya menulis add_header selepas menulis semula, saya mendapati add_header tidak berfungsi. . Ini kerana ia ditulis ke dalam if..
modul mod_expires Apache membolehkan tarikh ditetapkan secara relatif seperti umur maksimum apabila menggunakan pengepala tamat tempoh, yang dilengkapkan melalui arahan expiresdefault. Contohnya: masa tamat tempoh imej ialah 10 tahun selepas permintaan bermula
tamat lalai "akses tambah 10 tahun"
< /filematch> ;
Ia menghantar pengepala tamat tempoh dan pengepala umur maksimum kawalan cache dalam respons.
tamat tempoh|etag mengawal cache halaman Perbezaannya tamat tempoh: Seperti yang dinyatakan dalam artikel di atas: arahan tamat tempoh mengawal maklumat pengepala "tamat tempoh" dan "kawalan cache" dalam respons http, dan memulakan fungsi. mengawal masa cache halaman : Nombor positif atau negatif boleh digunakan. Nilai pengepala "tamat tempoh" akan ditetapkan dengan menambahkan masa sistem semasa kepada nilai masa yang ditetapkan. Nilai masa juga mengawal nilai "cache-control": nombor negatif menunjukkan tiada cache, nombor positif atau sifar menunjukkan max-age=time epoch: Tentukan nilai "expired" sebagai 1januari,1970,00:00 :01 gmtmax: Nyatakan "tamat tempoh" "Nilai ialah 31december203723:59:59gmt, dan nilai "kawalan cache" ialah 10 tahun. -1: Tentukan nilai "tamat tempoh" menjadi -1s masa pelayan semasa, yang bermaksud ia akan tamat tempoh selama-lamanya. mati: Jangan ubah suai nilai "tamat tempoh" dan "kawalan cache"
tamat menggunakan masa tertentu dan memerlukan penyegerakan yang ketat antara pelayan dan klien.
Kawalan cache menggunakan arahan umur maksimum untuk menentukan tempoh masa komponen akan dicache.
Untuk pelayar yang tidak menyokong http1.1, tamat tempoh masih perlu dikawal. Oleh itu, lebih baik untuk menentukan dua pengepala respons. Tetapi spesifikasi http menetapkan bahawa arahan umur maksimum akan menulis semula pengepala tamat tempoh. Ia biasanya digunakan apabila halaman tidak berubah dengan cepat Jika cache tamat tempoh, penyemak imbas akan terlebih dahulu mengesahkan sama ada ia sah sebelum menggunakannya semula. Jika ia sah, ia akan mengembalikan 304 kod status. Tamat tempoh ditentukan melalui pengepala respons yang diubah suai terakhir. Seperti yang ditunjukkan dalam gambar:
Lawatan pertama:
Permintaan:
Pulangan:
Lawatan kedua:
Permintaan :
Pulangan:
Kod status yang dikembalikan pada masa ini ialah 304, dan terdapat lebih banyak if-ubah suai dalam permintaan daripada yang pertama masa Pengepala -sejak dibandingkan dengan yang terakhir diubah suai dalam pelayan asal, jadi caching penyemak imbas dilaksanakan dan sama ada ia telah tamat tempoh ditentukan.
Secara ringkasnya, last-modified dan if-modified-sejak kedua-duanya adalah maklumat pengepala http yang digunakan untuk merekodkan masa pengubahsuaian terakhir halaman, tetapi yang terakhir diubah suai ialah pengepala http yang dihantar oleh pelayan kepada klien, manakala if-modified -kerana ialah Daripada pengepala yang dihantar oleh klien ke pelayan, anda boleh melihat bahawa apabila meminta halaman cache sedia ada setempat sekali lagi, klien akan menghantar semula cap waktu pengubahsuaian terakhir yang diubah suai terakhir yang dihantar oleh pelayan sebelumnya melalui if-modified- sejak pengepala Ini Ia adalah untuk pelayan mengesahkan dan menggunakan cap waktu ini untuk menentukan sama ada halaman pelanggan adalah yang terkini. Jika ia bukan yang terkini, kembalikan 304 untuk memberitahu pelanggan bahawa halaman dalam cache tempatannya adalah yang terkini, jadi pelanggan boleh memuatkan halaman secara langsung dari tempatan, yang akan mengurangkan data yang dihantar pada rangkaian dan juga mengurangkan beban pada pelayan.
Jika anda tidak mahu proksi atau penyemak imbas dicache, tambahkan parameter tanpa cache atau parameter peribadi:
# tamat tempoh 1d;
tambah_header cache-control no-cache;
add_header cache-control private ;
etag: teg entiti, iaitu mekanisme yang digunakan untuk mengesahkan kesahihan pelayan web dan cache penyemak imbas. Pelayan asal menggunakan pengepala respons etag untuk menentukan etag komponen dan penyemak imbas menghantar etag kembali ke pelayan asal melalui pengepala if-none-match. Jika ia sepadan, kembalikan 304
seperti yang ditunjukkan:
Lawatan pertama:
Permintaan:
Pulangan:
Kedua permintaan:
Pulangan:
Kod status yang masih dikembalikan ialah 304, dan terdapat lebih banyak jika dalam permintaan berbanding kali pertama - pengepala tiada padanan. Jadi laksanakan cache penyemak imbas. Jika nilai ini tidak sepadan, cache akan tamat tempoh.
etag dan jika-tiada-padan ialah kaedah yang biasa digunakan untuk menentukan sama ada sumber telah berubah. Sama seperti last-modified dan http-if-modified-sejak. Tetapi perbezaannya ialah pengubahsuaian terakhir dan http-jika-diubahsuai-sejak hanya menentukan masa pengubahsuaian terakhir sumber, manakala etags dan jika-tiada-padanan boleh menjadi sebarang atribut sumber.
etags dan jika-tiada-padanan berfungsi dengan menambahkan maklumat etags pada httpresponse. Apabila pelanggan meminta sumber semula, maklumat jika-tiada-padan (nilai etags) akan ditambahkan pada httprequest. Jika pelayan mengesahkan bahawa etag sumber tidak berubah (sumber tidak berubah), ia akan mengembalikan status 304 jika tidak, pelayan akan mengembalikan status 200 dan mengembalikan sumber dan etags baharu;
Format etag pada iis perlu diubah suai.
Atas ialah kandungan terperinci nginx tamat tempoh kaedah untuk mengawal caching halaman. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!