Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Meningkatkan Prestasi Laman Web dengan Pengepala Cache HTTP dalam PHP?

Bagaimana untuk Meningkatkan Prestasi Laman Web dengan Pengepala Cache HTTP dalam PHP?

Patricia Arquette
Patricia Arquetteasal
2024-11-04 11:13:02475semak imbas

How to Improve Website Performance with HTTP Cache Headers in PHP?

Cara Melaksanakan Pengepala Cache HTTP untuk Pengoptimuman Prestasi

Dalam senario di mana halaman web dinamik terutamanya terdiri daripada kandungan statik, menggunakan pengepala cache HTTP dengan PHP boleh meningkatkan prestasi tapak web dengan ketara . Panduan ini akan menyelidiki tajuk penting untuk caching yang berkesan.

Arahan Kawalan Cache

kawalan cache: private, max-age=180 - Menetapkan cache peribadi untuk 180 saat. Cache peribadi hanya boleh diakses oleh pengguna individu, menghalang perkongsian antara berbilang pelanggan.

cache-control: public, max-age=180 - Tetapkan cache awam selama 180 saat. Cache awam tersedia untuk semua pelanggan, membenarkan akses dikongsi.

Tarikh HTTP dan Pengepala Respons ETag

Terakhir Diubah Suai: tarikh dan masa GMT - Menyediakan tarikh dan masa apabila kandungan kali terakhir diubah suai, membenarkan penyemak imbas menyemak kemas kini.

ETag: (pengecam unik) - Menghasilkan cincang atau checksum yang mewakili keadaan unik kandungan. Penyemak imbas menggunakan pengepala ETag untuk mengesahkan sama ada kandungan telah berubah sejak permintaan terakhir.

Tajuk Pengesahan Cache

Jika-Diubah Suai-Sejak: tarikh dan masa GMT - Pelanggan menghantar tarikh terakhir sumber diubah suai yang diketahui. Jika tiada perubahan sejak tarikh itu, pelayan bertindak balas dengan status 304 Not Modified, mengelakkan pengambilan kandungan yang tidak perlu.

If-None-Match: (pengecam unik) - Pelanggan menghantar nilai ETag terakhir yang diketahui untuk sumber tersebut. Jika ETag sepadan dengan nilai semasa pelayan, status 304 Not Modified dikembalikan.

Pelaksanaan dengan PHP

Untuk melaksanakan pengepala ini dalam PHP, pertimbangkan contoh kod berikut:

<code class="php">$tsstring = gmdate('D, d M Y H:i:s ', $timestamp) . 'GMT';
$etag = md5($language . $timestamp);

$if_modified_since = isset($_SERVER['HTTP_IF_MODIFIED_SINCE']) ? $_SERVER['HTTP_IF_MODIFIED_SINCE'] : false;
$if_none_match = isset($_SERVER['HTTP_IF_NONE_MATCH']) ? $_SERVER['HTTP_IF_NONE_MATCH'] : false;

if ((($if_none_match && $if_none_match == $etag) || (!$if_none_match)) &&
    ($if_modified_since && $if_modified_since == $tsstring)) {
    header('HTTP/1.1 304 Not Modified');
    exit();
} else {
    header("Last-Modified: $tsstring");
    header("ETag: \"{$etag}\"");
}</code>

Atas ialah kandungan terperinci Bagaimana untuk Meningkatkan Prestasi Laman Web dengan Pengepala Cache HTTP dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn