Aina za cache header

  1. Cache-Control 

Hii hutumika kudhibiti ni kwa namna gani header zinadhibitiwa. Cache hii ina directive kama vile:-

  1. No-cache: hii hutumika kutuma ombi moja kwa moja kwenye server kablya ya cache kufanyiwa kopi.. .header('Cache-Control: no-cache');

  2. No-store: hapa unaikataza browser kutohifadhi cache kabisa header('Cache-Control: no-store');

  3. max-age=36000: hii huweka muda ulio kikomo ambapo maudhui yatakuwa live. header('Cache-Control: max-age=3600');

  4. Must-revalidate: hapa browser inatakiwa mpaka ktuma tena cache kwa ajili ya kuthibitisha taarifa.header('Cache-Control: must-revalidate');

  5. Public: ina maana maudhui yameruhusiwa kuhifadhiwa na cache yoeyote ile header('Cache-Control: public');

  6. Private: na maana cache husika ni kwa ajiliya mtummoja tu,hivyo inakatazwa kutoa taarifa hizo kushare kwingine. header('Cache-Control: private');

 

2. Expire 

Hii hushughulika na muda ambao ukipita basi taarifa za kwenye header zitakuwa sio sahiahi ama hazitapatikana tena. Mfano header('Expires: Thu, 01 Dec 2022 16:00:00 GMT');

 

3. ETag (Entity Tag):

Hii hutumika kuweka utambulishi wa toleo la maudhui yaliyokuwepo kweye header. Utambulisho huu unaweza kutumika katika kuthibitisha uhalali wa taarifa hizo   header('ETag: "unique-identifier"'); kwenye identifier kunaweza kukaa hash data, ama database version, ama time au data yeyote itakayoweza kutumika. 

mfano:-

$file = 'path/to/your/file';

$etag = md5(filemtime($file) . filesize($file));

header('ETag: "' . $etag . '"');

 

4. Last-Modified:

Hii hutaja muda ambapo content zimefanyiwa modification kwa mara ya mwisho. Mfano header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT');

 

5. Vary:

Hii hutumika katika kudhibiti cache kabla haijafanyika inatakiwa kuangalia baadhi ya taarifa za header. Kwa mfano inaweza kuwa kama sio encoding maalumy basi cache isifanyike. Ama kama sio aina fulani ya content cache isifanyike.

header('Vary: Accept-Encoding');

 

 

Mifano zaidi:

<?php

// Cache-Control Headers

// No-cache: send request to server before using cache

header('Cache-Control: no-cache');

echo "Cache-Control: no-cache\n";

 

// No-store: do not store cache

header('Cache-Control: no-store');

echo "Cache-Control: no-store\n";

 

// max-age=3600: set the max age for cache in seconds

header('Cache-Control: max-age=3600');

echo "Cache-Control: max-age=3600\n";

 

// Must-revalidate: revalidate cache before using it

header('Cache-Control: must-revalidate');

echo "Cache-Control: must-revalidate\n";

 

// Public: allow cache to be stored by any cache

header('Cache-Control: public');

echo "Cache-Control: public\n";

 

// Private: allow cache to be stored by a single user only

header('Cache-Control: private');

echo "Cache-Control: private\n";

 

// Expires Header

// Set an expiration date for the cached content

header('Expires: Thu, 01 Dec 2022 16:00:00 GMT');

echo "Expires: Thu, 01 Dec 2022 16:00:00 GMT\n";

 

// ETag Header

// Generate an ETag based on file modification time and size

$file = 'path/to/your/file';

$etag = md5(filemtime($file) . filesize($file));

header('ETag: "' . $etag . '"');

echo 'ETag: "' . $etag . "\"\n";

 

// Last-Modified Header

// Set the last modified time of the content

header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT');

echo 'Last-Modified: ' . gmdate('D, d M Y H:i:s') . " GMT\n";

 

// Vary Header

// Control cache based on specific headers, e.g., Accept-Encoding

header('Vary: Accept-Encoding');

echo "Vary: Accept-Encoding\n";

?>

 

Mwisho:

Katika somo linalofuata tutakwenda lujifunza kuhusu redirect header.