Rumah > pembangunan bahagian belakang > tutorial php > Bagaimanakah saya boleh menggunakan pengepala cache HTTP dengan PHP untuk meningkatkan prestasi web?

Bagaimanakah saya boleh menggunakan pengepala cache HTTP dengan PHP untuk meningkatkan prestasi web?

Mary-Kate Olsen
Lepaskan: 2024-11-05 16:18:02
asal
556 orang telah melayarinya

How can I utilize HTTP cache headers with PHP to enhance web performance?

Pengepala Cache HTTP: Meningkatkan Prestasi Web dengan PHP

Untuk tapak web dengan sebahagian besar kandungan statik, melaksanakan pengepala cache HTTP boleh meningkatkan prestasi dengan ketara. PHP menyediakan beberapa fungsi terbina dalam untuk membantu tugasan ini.

Pengepala Cache Penting

Untuk mendayakan caching, pertimbangkan untuk menggunakan pengepala berikut:

  1. Kawalan Cache: Menentukan dasar cache. Untuk kandungan peribadi yang tidak sepatutnya dicache secara terbuka, gunakan private_no_expire. Untuk kandungan awam dengan jangka hayat yang panjang, gunakan awam, max-age=.
  2. Tamat: Menetapkan tarikh tamat tempoh untuk kandungan cache. Untuk kandungan yang tidak pernah berubah, pertimbangkan untuk menetapkan tarikh yang jauh.
  3. Terakhir Diubah Suai: Menunjukkan kali terakhir kandungan itu diubah suai. Ini membolehkan penyemak imbas menentukan sama ada kandungan cache masih terkini.
  4. ETag: Pengecam unik untuk kandungan tersebut. Jika ETag sepadan dengan nilai dalam pengepala permintaan If-None-Match, penyemak imbas boleh menganggap kandungan tidak berubah dan menyediakan versi cache.

Mengendalikan Permintaan Bersyarat

Kepada mengoptimumkan prestasi lagi, mengendalikan permintaan bersyarat:

<code class="php">$tsstring = gmdate('D, d M Y H:i:s ', $timestamp) . 'GMT';
$etag = $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 &amp;&amp; $if_none_match == $etag) || (!$if_none_match)) &amp;&amp;
    ($if_modified_since &amp;&amp; $if_modified_since == $tsstring)) {
    header('HTTP/1.1 304 Not Modified');
    exit();
} else {
    header("Last-Modified: $tsstring");
    header("ETag: \"{$etag}\"");
}</code>
Salin selepas log masuk

Jika pengepala Jika-Tiada-Padanan sepadan dengan ETag atau jika pengepala If-Modified-Since sepadan dengan tarikh Last-Modified, respons 304 Not Modified dikembalikan, menunjukkan kandungan cache adalah mencukupi. Jika tidak, pelayan mengembalikan kandungan terkini.

Dengan melaksanakan pengepala cache ini, anda boleh mengurangkan beban pada pelayan web anda dengan ketara dan meningkatkan pengalaman pengguna dengan pemuatan halaman yang lebih pantas.

Atas ialah kandungan terperinci Bagaimanakah saya boleh menggunakan pengepala cache HTTP dengan PHP untuk meningkatkan prestasi web?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan