പേജ് കാഷിംഗ് പ്രവർത്തനരഹിതമാക്കുക. PHP ഉപയോഗിച്ച് പേജ് കാഷെ ചെയ്യുന്നത് തടയുക. പേജ് കാഷിംഗ് പ്രവർത്തനരഹിതമാക്കുക, ബ്രൗസർ മാത്രം

ചിലപ്പോൾ, ഒരു പേജ് കാഷെ ചെയ്യുന്നതിൽ നിന്ന് ബ്രൗസറിനെ തടയേണ്ടത് ആവശ്യമായി വന്നേക്കാം, കാരണം അതിലെ വിവരങ്ങൾ ഓരോ തവണയും അപ്ഡേറ്റ് ചെയ്യപ്പെടുന്നു. ഇത് തിരഞ്ഞെടുത്ത ഫിൽട്ടറുകൾ അല്ലെങ്കിൽ ഓരോ തവണയും പുതിയ രീതിയിൽ സൃഷ്ടിക്കുന്ന മറ്റ് ഉള്ളടക്കങ്ങൾക്കനുസരിച്ചുള്ള ഡാറ്റയുടെ ജനറേഷൻ ആകാം. ചുരുക്കത്തിൽ, ഒരു വഞ്ചനാപരമായ പ്രോഗ്രാം ഒരു പേജ് കാഷെ ചെയ്യുന്നതിൽ നിന്ന് തടയേണ്ട സമയങ്ങളുണ്ട്. ഇത് എങ്ങനെ നടപ്പിലാക്കണമെന്ന് ഇന്ന് നമ്മൾ പഠിക്കും വ്യത്യസ്ത രീതികളിൽ, കൂടെ PHP ഉപയോഗിക്കുന്നുഅല്ലെങ്കിൽ HTML അല്ലെങ്കിൽ .htaccess.

HTML-ൽ പേജ് കാഷെ ചെയ്യുന്നത് നിരോധിക്കുന്നു

മെറ്റാ ടാഗുകൾ ഉപയോഗിച്ച് ഇത് ചെയ്യാൻ കഴിയും. ഇപ്പോൾ ഞങ്ങൾ അത് മനസ്സിലാക്കും വ്യത്യസ്ത ഓപ്ഷനുകൾകാഷിംഗ് നിരോധനം.

ബ്രൗസറും പ്രോക്സി സെർവറും ഉപയോഗിച്ച് കാഷെ ചെയ്യുന്നതിനുള്ള നിരോധനം

പേജ് കാഷിംഗ് പ്രവർത്തനരഹിതമാക്കുക, ബ്രൗസർ മാത്രം

എന്നതിലേക്ക് കാഷിംഗ് ക്രമീകരിക്കുന്നു നിശ്ചിത സമയം, ബ്രൗസറിനായി

ചുവടെയുള്ള കോഡ് ഉപയോഗിച്ച്, ഡോക്യുമെൻ്റ് എത്രനേരം കാഷെയിൽ സൂക്ഷിക്കണമെന്ന് നമുക്ക് ബ്രൗസറിനോട് പറയാൻ കഴിയും. അതിനുശേഷം, കാഷെ അപ്ഡേറ്റ് ചെയ്യും.

ഒരു പ്രോക്‌സി സെർവറിനായി ഒരു നിർദ്ദിഷ്‌ട സമയത്തേക്ക് കാഷിംഗ് സജ്ജീകരിക്കുന്നു

പ്രായോഗികമായി, മുമ്പത്തെ കോഡിലെ പോലെ തന്നെ, പ്രോക്സി സെർവറിനുള്ള സൂചന മാത്രമാണ്.

PHP ഉപയോഗിച്ച് പേജ് കാഷെ ചെയ്യുന്നത് തടയുക

പ്രായോഗികമായി, എല്ലാം HTML-ൻ്റെ കാര്യത്തിലേതിന് സമാനമാണ്, തലക്കെട്ടുകളിലൂടെ മാത്രമേ ഞങ്ങൾ വിവരങ്ങൾ പ്രദർശിപ്പിക്കുകയുള്ളൂ. ഒരു സമ്പൂർണ്ണ കാഷെ നിഷേധം എങ്ങനെ നടപ്പിലാക്കാം എന്നത് ഇതാ:

നിങ്ങൾക്ക് ഒരു നിശ്ചിത സമയത്തേക്ക് കാഷെ ചെയ്യാനും അനുവദിക്കാം. ഉദാഹരണത്തിന്, 1 മണിക്കൂർ മാത്രം കാഷെ ചെയ്യാൻ അനുവദിക്കുക.

.htaccess ഉപയോഗിച്ച് പേജ് കാഷെ ചെയ്യുന്നത് തടയുക

ആശയം നടപ്പിലാക്കാൻ എളുപ്പമാക്കുന്നതിന്, എല്ലാം കോൺഫിഗറേഷൻ തലത്തിൽ ചെയ്യാവുന്നതാണ് അപ്പാച്ചെ സെർവർ. അതിനുമുമ്പ്, അത് ഉറപ്പാക്കേണ്ടതുണ്ട് ആവശ്യമായ മൊഡ്യൂളുകൾപ്രവർത്തന ക്രമത്തിലാണ്. അപ്പാച്ചെ കോൺഫിഗറേഷൻ ഫയൽ തുറന്ന് ഇനിപ്പറയുന്ന ചിത്രം കാണുക:

LoadModule expires_module modules/mod_expires.so LoadModule headers_module modules/mod_headers.so ... AddModule mod_expires.c AddModule mod_headers.c

ഇപ്പോൾ .htaccess ഫയലിൽ, ഔട്ട്‌പുട്ട് ഡാറ്റ കാഷെ ചെയ്യുന്നത് ഞങ്ങൾ യഥാർത്ഥത്തിൽ നിരോധിക്കുന്നു. നമുക്കറിയാവുന്നതുപോലെ, . htaccess ഫയൽഅത് സ്ഥിതി ചെയ്യുന്ന ഡയറക്‌ടറിയിലും എല്ലാ ഉപഡയറക്‌ടറികളിലും ബാധകമാകും.

# Header Cache-Control Header append Cache-Control "no-store, no-cache, must-revalidate" # Header ExpiresActive on ExpiresDefault "ഇപ്പോൾ"

എന്നത് ശ്രദ്ധിക്കേണ്ടതാണ് സമ്പൂർണ നിരോധനംകാഷിംഗ് സെർവറിലെ ലോഡ് വർദ്ധിപ്പിക്കുന്നു. അതിനാൽ, ഇത് ശ്രദ്ധാപൂർവ്വം കളിക്കുക! ഇതിലും മികച്ചത്, നിങ്ങൾക്ക് പ്രമാണങ്ങൾ കാഷെ ചെയ്യാൻ കഴിയുന്ന ഒരു പ്രത്യേക സമയം സജ്ജമാക്കുക. ഉദാഹരണത്തിന്, നമുക്ക് 1 മണിക്കൂർ കാഷിംഗ് സജ്ജമാക്കാം:

# ഹെഡർ കാഷെ-നിയന്ത്രണ തലക്കെട്ട് കൂട്ടിച്ചേർക്കുക കാഷെ-നിയന്ത്രണം "പബ്ലിക്" # ഹെഡർ കാലഹരണപ്പെടുന്നു സജീവം കാലഹരണപ്പെടുന്നു ഡിഫോൾട്ട് "ആക്സസും 1 മണിക്കൂറും"

ഉപസംഹാരം കാഷിംഗിനെക്കുറിച്ച് അൽപ്പം

വെബ്‌മാസ്റ്റർമാർ പലപ്പോഴും കാഷിംഗ് നേരിടുന്നു: ബ്രൗസറുകളും പ്രോക്സി സെർവറുകളും, ഉപയോക്താവിനായി വെബ് വേഗത്തിലാക്കാൻ ശ്രമിക്കുന്നു, അത്രയും സൂക്ഷിക്കാൻ ശ്രമിക്കുക വലിയ സംഖ്യകാഷെയിലെ പ്രമാണങ്ങൾ. നിങ്ങൾ ഒരു ബ്രൗസറിൽ ഒരു സൈറ്റ് പേജ് തുറന്നാൽ, മറ്റൊന്ന്, തുടർന്ന് ആദ്യത്തേതിലേക്ക് മടങ്ങുകയാണെങ്കിൽ, ഉയർന്ന തോതിലുള്ള പ്രോബബിലിറ്റി ഉപയോഗിച്ച് ബ്രൗസർ അത് നിങ്ങളുടെ ഡിസ്കിൽ നിന്ന് എടുക്കും (അല്ലെങ്കിൽ അതിൽ നിന്ന് പോലും. റാം), അവിടെ അദ്ദേഹം തൻ്റെ ആദ്യ സന്ദർശനത്തിൽ പേജ് സേവ് ചെയ്തു. വ്യക്തമായും, ഈ പ്രവർത്തനം സാധാരണയായി നെറ്റ്‌വർക്കിൽ നിന്ന് ഒരേ പ്രമാണം വീണ്ടെടുക്കുന്നതിനേക്കാൾ വളരെ വേഗതയുള്ളതാണ്. എല്ലാത്തിനുമുപരി, ഒരു പേജ് പ്രദർശിപ്പിക്കുന്നതിന് നിങ്ങൾക്ക് HTML കോഡ് ലഭിക്കുന്നതിന് മാത്രമല്ല, നെറ്റ്‌വർക്കിൽ നിന്നുള്ള എല്ലാ അനുബന്ധ പ്രമാണങ്ങളും ഡൗൺലോഡ് ചെയ്യേണ്ടതുണ്ട്: CSS ഫയലുകൾ, ചിത്രങ്ങൾ, സ്‌ക്രിപ്റ്റുകൾ ഇങ്ങനെ ഫോർമാറ്റ് ചെയ്‌തു പ്രത്യേക ഫയലുകൾ, തുടങ്ങിയവ. നിങ്ങളുടെ ഡ്രൈവിലെ കാഷെ ഫോൾഡറുകളിൽ നിങ്ങൾ നോക്കുകയാണെങ്കിൽ (IE-യ്‌ക്കായി ഈ ഫോൾഡർ സാധാരണയായി ഇവിടെയാണ് സ്ഥിതി ചെയ്യുന്നത്: "C:\Documents and Settings\ ഉപയോക്തൃനാമം"പ്രാദേശിക ക്രമീകരണങ്ങൾ\ താൽക്കാലിക ഇൻ്റർനെറ്റ് ഫയലുകൾ", Firefox-ന്: "C:\Documents and Settings\ ഉപയോക്തൃനാമം\പ്രാദേശിക ക്രമീകരണങ്ങൾ\അപ്ലിക്കേഷൻ ഡാറ്റ\Mozilla\Firefox\Profiles\ _റാൻഡം_സ്ട്രിംഗ്_. default\Cache"), അപ്പോൾ നിങ്ങളുടെ ബ്രൗസർ എത്ര ഫയലുകൾ സംരക്ഷിച്ചിട്ടുണ്ടെന്ന് നിങ്ങൾ ശ്രദ്ധിക്കും.

തീർച്ചയായും, കാഷെ ജോലിയെ വളരെയധികം വേഗത്തിലാക്കുന്നു, എന്നാൽ മറുവശത്ത്, കാഷെ ഒരു നെഗറ്റീവ് പങ്ക് വഹിക്കും. ഉദാഹരണത്തിന്, ഒരു പേജ്, ഉദാഹരണത്തിന്, ഒരു ചാറ്റ്, കാഷെ ചെയ്താൽ, ഉപയോക്താക്കൾ പുതിയ സന്ദേശങ്ങൾ കാണില്ല. വെബ്‌മാസ്റ്റർമാർ പലപ്പോഴും കാഷെ തിന്മയായി കണക്കാക്കുകയും അവരുടെ കഴിവിൻ്റെ പരമാവധി ഈ തിന്മക്കെതിരെ പോരാടുകയും ചെയ്യുന്നു. പല പുസ്‌തകങ്ങളിലും (സാധാരണയായി വെബ്‌മാസ്റ്റർമാർ പുസ്തകങ്ങൾ വായിക്കാറില്ല, ഫോറങ്ങളും മറ്റും ഇഷ്ടപ്പെടുന്നു നെറ്റ്വർക്ക് ഉറവിടങ്ങൾ), പല ലേഖനങ്ങളിലും നിങ്ങൾക്ക് സമാനമായ കോഡ് കണ്ടെത്താൻ കഴിയും. ഒരു ഉദാഹരണം ഇതാ:

കാഷിംഗ് പ്രശ്നം മൈക്രോസോഫ്റ്റ് ഇൻ്റർനെറ്റ്എക്സ്പ്ലോറർ

ഇൻ്റർനെറ്റ് എക്സ്പ്ലോറർഅഭ്യർത്ഥനകൾ നേടുക. HTTP കാഷിംഗ് പരിചിതമല്ലാത്ത രചയിതാക്കൾ, GET അഭ്യർത്ഥനകൾ കാഷെ ചെയ്തിട്ടില്ലെന്നും അല്ലെങ്കിൽ ഒരു പുതുക്കൽ ബട്ടണിൽ ക്ലിക്കുചെയ്യുന്നത് പോലെ കാഷെ മറികടക്കാൻ കഴിയുമെന്നും പ്രതീക്ഷിക്കുന്നു. ചില സാഹചര്യങ്ങളിൽ, കാഷിംഗ് ഒഴിവാക്കുന്നത് തീർച്ചയായും ഒരു തെറ്റാണ്. ഒരു പരിഹാരം ഉപയോഗിക്കുക എന്നതാണ് പോസ്റ്റ് രീതി, ഒരിക്കലും കാഷെ ചെയ്യാത്തത്; എന്നിരുന്നാലും, ഇത് മറ്റ് പ്രവർത്തനങ്ങൾക്കായി ഉദ്ദേശിച്ചുള്ളതാണ്. മറ്റൊരു പരിഹാരം രീതി ഉപയോഗിക്കുക എന്നതാണ് അഭ്യർത്ഥന നേടുക, ചുവടെയുള്ള ഉദാഹരണത്തിൽ കാണിച്ചിരിക്കുന്നതുപോലെ, ഓരോ കോളിലും ഒരു അദ്വിതീയ അന്വേഷണ സ്ട്രിംഗ് ഉൾപ്പെടെ.

req.open("GET", "xmlprovider.php?hash=" + Math.random());

അല്ലെങ്കിൽ എക്‌സ്എംഎൽ ഉള്ളടക്കം സൃഷ്‌ടിക്കുന്ന നിങ്ങളുടെ സ്‌ക്രിപ്‌റ്റിലെ കഴിഞ്ഞ തീയതിയിലേക്ക് കാലഹരണപ്പെടുന്ന തലക്കെട്ട് സജ്ജമാക്കുക. PHP-യിൽ ഇത് ഇങ്ങനെയായിരിക്കും:

// IE കാഷിംഗ് ഹെഡർ പ്രവർത്തനരഹിതമാക്കുക ("കാലഹരണപ്പെടുന്നത്: തിങ്കൾ, 26 ജൂലൈ 1997 05:00:00 GMT"); തലക്കെട്ട്("അവസാനം പരിഷ്ക്കരിച്ചത്: " . gmdate("D, d M Y H:i:s") . " GMT"); തലക്കെട്ട് ("കാഷെ-നിയന്ത്രണം: നോ-കാഷെ, വീണ്ടും മൂല്യനിർണ്ണയം"); തലക്കെട്ട് ("പ്രാഗ്മ: നോ-കാഷെ"); ...

PHP കോഡ് പരിചിതമാണോ? നിങ്ങൾ ഇത് എഴുതിയിട്ടുണ്ടെന്ന് എനിക്ക് ഉറപ്പുണ്ട് (സാധാരണയായി രീതി ഉപയോഗിക്കുന്നു പകർത്തുക-ഒട്ടിക്കുക) അവൻ്റെ ജോലിയിൽ. പക്ഷേ! ഇവിടെ വളരെ പ്രധാനപ്പെട്ട ഒരു "എന്നാൽ" ഉണ്ട്: വിക്കിപീഡിയയുടെ പ്രാധാന്യവും അധികാരവും ഒരു തരത്തിലും കുറയ്ക്കാതെ, ഈ കോഡ് തെറ്റാണെന്ന ദൗർഭാഗ്യകരമായ വസ്തുത മാത്രമേ ഞങ്ങൾ ശ്രദ്ധിക്കൂ! ഉറപ്പാക്കണോ? എളുപ്പത്തിൽ!

കാഷിംഗ് പരിശോധിക്കുന്നു

അതിനാൽ, സ്റ്റാൻഡേർഡ്, ഡിഫോൾട്ട് ക്രമീകരണങ്ങൾ ഉപയോഗിച്ച് നമുക്ക് അപ്പാച്ചെ സമാരംഭിക്കാം. ഇവിടെയും തുടർന്നും ഞങ്ങൾ അപ്പാച്ചെയും പിഎച്ച്പിയും ഉപയോഗിക്കുന്നു. എന്നാൽ ഇത് ഒരു തരത്തിലും അർത്ഥമാക്കുന്നില്ല, വിവരിച്ച പ്രശ്നവും അതിനുള്ള പരിഹാരങ്ങളും മറ്റ് സെർവറുകളുടെ പ്ലാറ്റ്‌ഫോമിൽ ലഭ്യമല്ല, ഉദാഹരണത്തിന്, Microsoft IIS. അതിനാൽ, നമുക്ക് അപ്പാച്ചെ ആരംഭിക്കാം. സെർവർ റൂട്ടിൽ ഒരു ശൂന്യമായ ടെസ്റ്റ്-കാഷെ ഫോൾഡർ സൃഷ്‌ടിക്കുകയും ഇനിപ്പറയുന്ന ഉള്ളടക്കത്തിനൊപ്പം test-1.php ഫയൽ സ്ഥാപിക്കുകയും ചെയ്യുക:

മുകളിലുള്ള ഉദാഹരണത്തിൽ നമ്മൾ കാണുന്നത് എളുപ്പമാണ് ഞങ്ങൾ ശ്രമിക്കുന്നുവിക്കിപീഡിയ പാചകക്കുറിപ്പ് അനുസരിച്ച് കാഷിംഗ് പ്രവർത്തനരഹിതമാക്കുക, കൂടാതെ നിലവിലെ സമയം പ്രദർശിപ്പിക്കുക.

ഇപ്പോൾ ബ്രൗസറിൽ നിങ്ങളുടെ ഫോൾഡർ കാണാൻ ശ്രമിക്കുക. ഇത് ചെയ്യുന്നതിന്, നിങ്ങളുടെ ബ്രൗസർ തുറന്ന് വിലാസ ബാറിൽ ടൈപ്പ് ചെയ്യുക

കൊള്ളാം! ഇപ്പോൾ നിങ്ങളുടെ test-1.php ഫയലിൽ ക്ലിക്ക് ചെയ്ത് സമയം ശ്രദ്ധിക്കുക (ഉദാഹരണത്തിന്, ഞാൻ വിൻഡോസ് ക്ലോക്കിന് അടുത്തായി ബ്രൗസർ വിൻഡോ സ്ഥാപിച്ചു):

അതിശയകരം! ഇപ്പോൾ ബ്രൗസറിലെ "ബാക്ക്", തുടർന്ന് "ഫോർവേഡ്" ബട്ടണുകൾ അമർത്തുക:

ശ്ശോ! കാലം മാറുന്നില്ല!!! എന്താണിതിനർത്ഥം? അതെ, ബ്രൗസർ കാഷെയിൽ നിന്ന് പേജ് എടുക്കുന്നു എന്ന് മാത്രം!!! നമ്മുടെ കാര്യം വിജ്ഞാനകോശംകോഡ്? അതെ, അത് പ്രവർത്തിക്കുന്നില്ല!

നമുക്ക് യഥാർത്ഥ ഉറവിടങ്ങളിലേക്ക് മടങ്ങാം

എന്താണ് പ്രശ്നം? എന്നതാണ് പ്രശ്നം ദുരുപയോഗംപ്രതികരണ തലക്കെട്ടുകൾ. RFC2616 സ്‌പെസിഫിക്കേഷൻ ഒരു മുഴുവൻ അധ്യായവും കാഷിംഗിനായി നീക്കിവയ്ക്കുന്നു. എന്നാൽ നിർഭാഗ്യവശാൽ, വെബ്‌മാസ്റ്റർമാർ പലപ്പോഴും സ്പെസിഫിക്കേഷനുകൾ വായിക്കാറില്ല. അപ്പോൾ നമ്മൾ പാസ്സാക്കിയ ആ തലക്കെട്ടുകൾ എന്താണ് അർത്ഥമാക്കുന്നത്? നമുക്ക് അവരെ നോക്കാം. ഫയർഫോക്സ് വെബ് ഡെവലപ്പർ ടൂൾബാർ ആഡ്-ഓൺ ഉപയോഗിച്ച് ഇത് ചെയ്യാൻ വളരെ സൗകര്യപ്രദമാണ്: വിവരങ്ങൾ. കാണുകപ്രതികരണംതലക്കെട്ടുകൾ(IE-യ്‌ക്ക് സമാനമായ ഉപകരണത്തെ DevToolbar എന്ന് വിളിക്കുന്നു):

അതിനാൽ ഞങ്ങൾ ഇനിപ്പറയുന്ന തലക്കെട്ടുകൾ കടന്നു:

കാലഹരണപ്പെടുന്നത്: തിങ്കൾ, 26 ജൂലൈ 1997 05:00:00 GMT - ഈ തലക്കെട്ട് വിവരങ്ങളുടെ പ്രസക്തിയുടെ സമയം സജ്ജമാക്കുന്നു. ഓരോ തവണയും സെർവറിൽ നിന്ന് പേജ് ലോഡുചെയ്യാൻ ഇത് ബ്രൗസറിനെ നിർബന്ധിതരാക്കുമെന്ന് വിശ്വസിച്ച് ഞങ്ങൾ മുമ്പ് ഒരു തീയതി കൈമാറാൻ ശ്രമിക്കുന്നു. അനുഭവത്തിൽ നിന്ന് ഞങ്ങൾ വ്യക്തമായി ശ്രദ്ധിച്ചതുപോലെ, ഇത് നിങ്ങളെ നിർബന്ധിക്കുന്നില്ല.

അവസാനം-പരിഷ്ക്കരിച്ചത്: ശനി, 26 ജനുവരി 2008 17:03:02 GMT — പേജിലെ വിവരങ്ങൾ പരിഷ്കരിച്ച തീയതിയും സമയവും. ഈ തലക്കെട്ട് വാലിഡേറ്ററുകളുമായുള്ള ഒരു അഭ്യർത്ഥനയ്ക്കായി ഉപയോഗിക്കാമെന്നതൊഴിച്ചാൽ, എല്ലാ (RFC2616-ൽ വായിക്കുക!) കാഷിംഗിനെ ബാധിക്കില്ല. ഉദാഹരണത്തിന്, തിരയൽ റോബോട്ട്ഇതുപോലുള്ള ഡാറ്റ അഭ്യർത്ഥിക്കാം: GET /megapage.html HTTP/1.1 If-Mofidied-മുതൽ: ശനി, 26 ജനുവരി 2008 17:03:02 GMT

അതായത്, " നിർദ്ദിഷ്ട തീയതി മുതൽ പ്രമാണം മാറിയിട്ടുണ്ടെങ്കിൽ അത് എനിക്ക് തരൂ", കൂടാതെ സെർവർ ഒരു 200 ("ഇതാ ഡോക്യുമെൻ്റ്, അത് മാറിയിരിക്കുന്നു!" അല്ലെങ്കിൽ 304 "മാറ്റങ്ങളൊന്നും ഉണ്ടായില്ല" എന്ന് മറുപടി നൽകണം. എന്നാൽ ഇത് പ്രവർത്തിക്കുന്നതിന്, നിങ്ങളുടെ സെർവർ അവസാനം പരിഷ്കരിച്ച തലക്കെട്ട് അയയ്ക്കണം, കൂടാതെ അത് അയയ്ക്കുക മാത്രമല്ല, ശരിയായ തീയതി അയയ്ക്കുക, പ്രമാണം പരിഷ്കരിച്ചു, പക്ഷേ ഞങ്ങൾ സ്വയം, സ്വന്തം കൈകളാൽ, മണ്ടന്മാരാണ് വിജ്ഞാനകോശംകോഡ് പൂർണ്ണമായും നശിപ്പിക്കപ്പെട്ടു അവസാന പ്രതീക്ഷകൾഇതിൽ! അതായത്, ഞങ്ങൾ കാഷെ നിരോധിച്ചില്ല എന്ന് മാത്രമല്ല, ഞങ്ങൾ സെർച്ച് എഞ്ചിനുകളെ (അല്ലെങ്കിൽ സ്വയം) ഗുരുതരമായി നശിപ്പിക്കുകയും ചെയ്തു! എല്ലാത്തിനുമുപരി, നിങ്ങൾ നിലവിലെ തീയതി ഒരു തീയതിയായി പാസ്സാക്കി അവസാന മാറ്റം, ഓർക്കുന്നുണ്ടോ?

കാഷെ-നിയന്ത്രണം: കാഷെ ഇല്ല, വീണ്ടും മൂല്യനിർണ്ണയം ചെയ്യണം - ഇപ്പോൾ, വിഷയത്തോട് അടുത്ത്. ഈ തലക്കെട്ടാണ് കാഷിംഗ് നിയന്ത്രിക്കുന്നത്, എന്നാൽ സ്വയം അല്ല, മറ്റുള്ളവരുമായി സംയോജിച്ച്. ഇപ്പോൾ ഞങ്ങൾ ഇനിപ്പറയുന്ന കമാൻഡ് പാസ്സാക്കി: “നോ-കാഷെ ഡയറക്‌ടീവ് ഒരു ഫീൽഡ്-നെയിം വ്യക്തമാക്കിയിട്ടില്ലെങ്കിൽ, ഒറിജിനൽ സെർവറുമായി വിജയകരമായി പുനർമൂല്യനിർണയം നടത്താതെ തുടർന്നുള്ള അഭ്യർത്ഥനയെ തൃപ്തിപ്പെടുത്താൻ ഒരു കാഷെ പ്രതികരണം ഉപയോഗിക്കരുത്). അടിസ്ഥാനപരമായി, ഈ രൂപത്തിൽ, ഇത് ബ്രൗസറിനല്ല, മറിച്ച് പ്രോക്സി സെർവറിനുള്ള ഒരു കമാൻഡ് ആണ്.

പ്രാഗ്മ: നോ-കാഷെ ഒരു കാലഹരണപ്പെട്ട രൂപകൽപ്പനയാണ്. ഇത് മുതൽ പഴയ പതിപ്പ് HTTP/1.0 പ്രോട്ടോക്കോൾ. മിക്കവാറും എല്ലാ ബ്രൗസറുകളും പ്രോക്സികളും ഇത് അവഗണിക്കുന്നു. അതിനാൽ, ഞങ്ങളുടെ PHP കോഡ് ലൈനുകളൊന്നും കാഷെ പ്രവർത്തനരഹിതമാക്കിയിട്ടില്ലെന്ന് ഞങ്ങൾ കാണുന്നു. എന്തുചെയ്യും? ഇവിടെ എന്താണ്:

കാഷിംഗ് പ്രവർത്തനരഹിതമാക്കുക

test-2.php എന്ന പുതിയ പേര് ഉപയോഗിച്ച് test-1.php ഫയൽ വീണ്ടും സംരക്ഷിച്ച് ഇനിപ്പറയുന്ന രീതിയിൽ മാറ്റുക:

ഇപ്പോൾ ഞങ്ങളുടെ ടെസ്റ്റ് ഫോൾഡർ വീണ്ടും തുറക്കാൻ ശ്രമിക്കുക http://localhost/test-cache/, test-2.php എന്ന പേരിൽ ക്ലിക്ക് ചെയ്യുക, ഇപ്പോൾ "ബാക്ക്", "ഫോർവേഡ്" ബട്ടണുകളിൽ ക്ലിക്ക് ചെയ്യുക. ഓരോ തവണയും സമയം മാറുന്നു! ഇതിനർത്ഥം, മുന്നോട്ട്/പിന്നോട്ട് നീങ്ങുമ്പോൾ ബ്രൗസർ കാഷെയിൽ നിന്ന് പേജ് എടുക്കുന്നില്ല, മറിച്ച് സെർവറിൽ നിന്ന് അത് വീണ്ടും അഭ്യർത്ഥിക്കുന്നു എന്നാണ്. വാസ്തവത്തിൽ, ഞങ്ങൾക്ക് വേണ്ടത് ഇതാണ്. പ്രതികരണ തലക്കെട്ടുകൾ നോക്കാം:

ഇവിടെ ഇതാ! ഞങ്ങൾ രണ്ട് തലക്കെട്ടുകൾ കടന്നുപോകുന്നു:

കാഷെ -നിയന്ത്രണം : ഇല്ല -സ്റ്റോർ - പേജിൽ സ്വകാര്യ ഡാറ്റ അടങ്ങിയിരിക്കുന്നു, നിങ്ങൾക്കത് കാഷെയിൽ സംരക്ഷിക്കാൻ കഴിയില്ല! (നോ-സ്റ്റോർ നിർദ്ദേശത്തിൻ്റെ ഉദ്ദേശ്യം തന്ത്രപ്രധാനമായ വിവരങ്ങൾ അശ്രദ്ധമായി പുറത്തുവിടുകയോ നിലനിർത്തുകയോ ചെയ്യുന്നത് തടയുക എന്നതാണ് (ഉദാഹരണത്തിന്, ബാക്കപ്പ് ടേപ്പുകളിൽ))

കാലഹരണപ്പെടുന്നത്: ശനി, 26 ജനുവരി 2008 20:31:55 +0300 - പേജിൻ്റെ പ്രസക്തി തൽക്ഷണം കാലഹരണപ്പെടുന്നു, അതായത് ഇപ്പോൾ.

ബ്രൗസറിൽ കാഷെ ചെയ്യുന്നത് തടയുന്നത് ഈ തലക്കെട്ടുകളാണ്. കാഷെ-നിയന്ത്രണ തലക്കെട്ടിലേക്ക് (ഫയൽ ടെസ്റ്റ്-3.php) പ്രോക്സി സെർവറുകൾക്കുള്ള നിർദ്ദേശങ്ങൾ ചേർക്കുന്നത് ഇപ്പോഴും ശരിയാണ്:

കാഷെ ചെയ്യുന്നതിനുള്ള പ്രായോഗിക നിരോധനം

അങ്ങനെ, കാഷെ ഓഫ് ചെയ്യാൻ ഞങ്ങൾ പഠിച്ചു. നിങ്ങളുടെ എല്ലാ പേജുകളിലും മുകളിലെ കോഡ് ഉൾപ്പെടുത്തണമെന്നാണോ ഇതിനർത്ഥം? ഒരിക്കലുമില്ല! നിങ്ങൾക്ക് ഒരു ഫോൾഡറിലെ എല്ലാ ഫയലുകളിലും കാഷെ ചെയ്യൽ പ്രവർത്തനരഹിതമാക്കണമെങ്കിൽ (എക്‌സിക്യൂട്ട് ചെയ്യാവുന്നവ മാത്രമല്ല) php സ്ക്രിപ്റ്റുകൾ) നമുക്ക് ആവശ്യമുള്ള തലക്കെട്ടുകൾ അയയ്‌ക്കാൻ അപ്പാച്ചെ സെർവർ കോൺഫിഗർ ചെയ്യാം. ഇത് ചെയ്യുന്നതിന്, അപ്പാച്ചെ സെർവർ കോൺഫിഗറേഷൻ ഫയൽ തുറന്ന് നിങ്ങൾ അഭിപ്രായമിടുന്നില്ലെന്ന് ഉറപ്പാക്കുക അടുത്ത വരികൾ(അല്ലെങ്കിൽ സ്വയം അഭിപ്രായമിടുക):

LoadModule expires_module modules/mod_expires.so LoadModule headers_module modules/mod_headers.so ... AddModule mod_expires.c AddModule mod_headers.c

കൊള്ളാം! ഇപ്പോൾ നിങ്ങളുടെ ഫോൾഡറിൽ ഒരു .htaccess ഫയൽ സൃഷ്ടിച്ച് അതിൽ ഇനിപ്പറയുന്നവ എഴുതുക:

# # ഈ ഫോൾഡറിലെ കാഷിംഗ് അപ്രാപ്‌തമാക്കുക # മൊഡ്യൂളുകൾ പ്രവർത്തനക്ഷമമാക്കിയിരിക്കണം # mod_headers.c, mod_expires.c # # ഹെഡർ കാഷെ-നിയന്ത്രണ തലക്കെട്ട് കൂട്ടിച്ചേർക്കുക കാഷെ-നിയന്ത്രണം "നോ-സ്റ്റോർ, നോ-കാഷെ, മസ്റ്റ്-റിവാലിഡേറ്റ്" # ഹെഡർ കാലഹരണപ്പെടും. "ഇപ്പോൾ"

എല്ലാം! ആവശ്യമായ തലക്കെട്ടുകൾ സ്വയമേവ അയയ്‌ക്കുന്നു, പ്രത്യേകിച്ചും എഴുതുന്നതിൽ നിന്ന് PHP ഇതിനകംആവശ്യമില്ല - കാഷെ ഇതിനകം ഓഫാക്കിയിരിക്കുന്നു! ഈ ഫോൾഡറിലെ ഏതെങ്കിലും ഫയൽ അഭ്യർത്ഥിക്കുമ്പോൾ അയച്ച തലക്കെട്ടുകൾ നോക്കുകയാണെങ്കിൽ നിങ്ങൾക്ക് ഇത് എളുപ്പത്തിൽ പരിശോധിക്കാനാകും:

കാഷിംഗ് അനുമതി

പക്ഷേ, ധാരാളം വെബ്‌മാസ്റ്റർമാർ കാഷെ ഒരു സാർവത്രിക തിന്മയായി കണക്കാക്കുന്നു എന്ന വസ്തുത ഉണ്ടായിരുന്നിട്ടും, കൂടാതെ ശ്രമിക്കുന്നുഇത് നിരോധിക്കുക (കൂടാതെ, ഞങ്ങൾ കണ്ടതുപോലെ, പരാജയപ്പെട്ടു), ഇത് അങ്ങനെയല്ല! കാഷെ ചെയ്യൽ പ്രവർത്തനരഹിതമാക്കുന്നതിലൂടെ, ഓരോ തവണയും സെർവറിൽ നിന്ന് നിങ്ങളുടെ പേജുകൾ വീണ്ടും ലോഡുചെയ്യാൻ നിങ്ങൾ ബ്രൗസറിനെ നിർബന്ധിക്കുന്നു, കൂടാതെ ഉപയോക്താവിൻ്റെ ആശയവിനിമയ ചാനൽ ദുർബലമാണെങ്കിൽ, ഇത് നിങ്ങളുടെ സൈറ്റ് ഉപയോഗിക്കുന്നതിൽ പ്രകടമായ മാന്ദ്യത്തിലേക്ക് നയിച്ചേക്കാം. ഇത് നിങ്ങളുടെ സെർവറിലെ ലോഡ് വർദ്ധിക്കുന്നതിലേക്ക് നയിക്കുന്നു എന്ന വസ്തുത പരാമർശിക്കേണ്ടതില്ല! നിങ്ങളുടെ പേജോ അതിൻ്റെ ഭാഗമോ ഡാറ്റാബേസിലെ ചോദ്യങ്ങളാൽ സൃഷ്ടിക്കപ്പെട്ടതാണെങ്കിൽ, നിങ്ങൾ ഡാറ്റാബേസ് സെർവറിലെ ലോഡ് വർദ്ധിപ്പിക്കുകയും ചെയ്യുന്നു, ഇത് നിങ്ങളുടെ സെർവറിൻ്റെ മൊത്തത്തിലുള്ള പ്രകടനത്തെ വളരെ പ്രതികൂലമായി ബാധിക്കും. ഞാൻ എന്താണ് സംസാരിക്കുന്നതെന്ന് നിങ്ങൾക്കറിയാം, ഉദാഹരണത്തിന്, ജോലി നോക്കുക www.odnoklassniki.ru! ചില വെബ്‌മാസ്റ്റർമാർ പേജിൻ്റെ ചുവടെ ഈ "സ്ഥിതിവിവരക്കണക്കുകൾ" പ്രദർശിപ്പിക്കുന്നതിലൂടെയും അഭിമാനിക്കുന്നു: " പേജ് 0.9 സെക്കൻഡിൽ സൃഷ്ടിച്ചു, 9 പൂർത്തിയായിSQLഅഭ്യർത്ഥിക്കുന്നു" ഇത് തികച്ചും മണ്ടത്തരമായ വെബ് ആപ്ലിക്കേഷൻ ആർക്കിടെക്ചറല്ലാതെ മറ്റൊന്നും കാണിക്കുന്നില്ല!

അതിനാൽ, നേരെമറിച്ച്, സെർവർ അൺലോഡ് ചെയ്യാനും ഞങ്ങളുടെ ഉപയോക്താവിൻ്റെ ജോലി വേഗത്തിലാക്കാനും ശ്രമിക്കാം! ഈ വിഷയത്തിലെ കാഷെ അതിലൊന്നാണ് ശക്തമായ ഉപകരണങ്ങൾ! ശരി, ദയവായി എന്നോട് പറയൂ, നിങ്ങളുടെ "കമ്പനിയെക്കുറിച്ച്" പേജ് എത്ര തവണ മാറും? അല്ലെങ്കിൽ ഒരു ഉപയോക്താവ് നിങ്ങളുടെ വാർത്ത കണ്ടാൽ എന്ത് സംഭവിക്കും (" ഹൂറേ! ഞങ്ങൾ നീങ്ങി പുതിയ എഞ്ചിൻ "") ഒരു മണിക്കൂർ കഴിഞ്ഞ്? അങ്ങനെയെങ്കിൽ അത്തരം പേജുകൾ കാഷെ ചെയ്യുന്നത് എന്തുകൊണ്ട് നിരോധിക്കുന്നു?

ഇപ്പോൾ ഒരു ബ്രൗസർ ഉപയോഗിച്ച് ഇത് തുറക്കുക, സമയം ശ്രദ്ധിക്കുകയും ഈ ഫയലിലേക്കുള്ള വ്യത്യസ്ത ലിങ്കുകൾ പിന്തുടരാൻ ശ്രമിക്കുകയും ചെയ്യുക. ബ്രൗസർ ക്ലോസ് ചെയ്‌ത് തുറന്ന് ഫയലിൻ്റെ പേരിൽ വീണ്ടും ക്ലിക്ക് ചെയ്‌താലും സമയം മാറില്ല! ഒരു മണിക്കൂറിനുള്ളിൽ, ഈ ഫയൽ കാഷെയിൽ നിന്ന് എടുക്കും. അതായത്, ഉപയോക്താവിന് ഒരു മണിക്കൂറിനുള്ളിൽ, നിങ്ങളുടെ സ്ക്രിപ്റ്റ് ഒരിക്കൽ എക്സിക്യൂട്ട് ചെയ്യപ്പെടും, ശേഷിക്കുന്ന സമയം, സാധ്യമായ പരമാവധി വേഗതയിൽ പ്രാദേശിക കാഷെയിൽ നിന്ന് പേജ് ലോഡ് ചെയ്യും! നിങ്ങളുടെ സെർവറിലെ ലോഡ് എത്രത്തോളം കുറയുമെന്ന് സങ്കൽപ്പിക്കുക! അത് രണ്ട് വരി കോഡ് മാത്രമാണ്!

അല്ലെങ്കിൽ നിങ്ങൾക്ക് PHP ഇല്ലാതെ തന്നെ ചെയ്യാൻ കഴിയും. ഫോൾഡറിൽ ഒരു .htaccess ഫയൽ സൃഷ്ടിച്ച് അതിൽ ഇനിപ്പറയുന്നവ നൽകുക:

# # ഈ ഫോൾഡറിൽ കാഷിംഗ് അനുവദിക്കുക # മൊഡ്യൂളുകൾ പ്രവർത്തനക്ഷമമാക്കിയിരിക്കണം # mod_headers.c ഉം mod_expires.c # # Cache-Control Header append Cache-Control "public" # കാലഹരണപ്പെട്ട ഹെഡർ കാലഹരണപ്പെടുന്നു സജീവമായി കാലഹരണപ്പെടുന്നുDefault "ആക്സസ് പ്ലസ് 1 മണിക്കൂർ"

ഫലം, അവർ പറയുന്നതുപോലെ, നഗ്നനേത്രങ്ങൾക്ക് ദൃശ്യമാണ്. സൈറ്റ് ഗ്രാഫിക്‌സിനും അപൂർവ്വമായി മാറിയ ഉള്ളടക്കം അടങ്ങിയ പേജുകൾക്കും അല്ലെങ്കിൽ പതിവായി സന്ദർശിക്കുന്ന പേജുകൾക്കും ഇത് പ്രത്യേകിച്ചും ഫലപ്രദമാണ്, ഉദാഹരണത്തിന്, ഹോം പേജ്.

ഒരു ശുപാർശ: ആദ്യം നിങ്ങളുടെ സൈറ്റ് പൂർണ്ണമായി ഡീബഗ് ചെയ്യുക, അതിനുശേഷം മാത്രം കാഷിംഗ് പ്രവർത്തനക്ഷമമാക്കുക! അല്ലെങ്കിൽ, പിശകുകൾക്കായി തിരയുമ്പോൾ നിങ്ങൾ ചാരനിറമാകാനും വെബ് സാങ്കേതികവിദ്യകളിൽ പൂർണ്ണമായും നിരാശനാകാനും സാധ്യതയുണ്ട് :)
കാഷെ ചെയ്യുന്നതിൽ ഭാഗ്യവും ഭാഗ്യവും!

കാഷിംഗ് എങ്ങനെ പ്രവർത്തനരഹിതമാക്കാം?

മാസ്റ്ററുടെ ഉത്തരം:

പ്രമാണങ്ങൾ കാഷെ ചെയ്യുന്നത് എല്ലായ്പ്പോഴും ഉപയോഗപ്രദമല്ല വേഗത്തിലുള്ള ജോലിബ്രൗസർ. ഇത് പ്രവർത്തനരഹിതമാക്കുന്നതിന്, ഓരോ ഇൻ്റർനെറ്റ് ബ്രൗസറിലും അന്തർലീനമായ സവിശേഷതകൾ നിങ്ങൾ അറിഞ്ഞിരിക്കണം. ഏറ്റവും ജനപ്രിയമായ ഇൻ്റർനെറ്റ് ബ്രൗസറുകളിൽ കാഷെ ചെയ്യുന്നത് എങ്ങനെ പ്രവർത്തനരഹിതമാക്കാം?

ഉപയോഗിക്കുകയാണെങ്കിൽ താഴെപ്പറയുന്ന കാര്യങ്ങൾ ചെയ്യാം മോസില്ല ഫയർഫോക്സ്. IN വിലാസ ബാർബ്രൗസർ opera:config നൽകുക. അതീവ ജാഗ്രത പാലിക്കണമെന്ന് മുന്നറിയിപ്പ് നൽകുന്ന ഒരു വിൻഡോ ദൃശ്യമാകും. "ശരി" ക്ലിക്ക് ചെയ്യുക. "ഫിൽറ്റർ" കണ്ടെത്തി അവിടെ browser.cache എന്ന് ടൈപ്പ് ചെയ്യുക. ഇതിനുശേഷം, ക്രമീകരണങ്ങളിൽ പത്തിൽ കൂടുതൽ വരികൾ നിലനിൽക്കില്ല.

കാഷിംഗ് പ്രവർത്തനരഹിതമാക്കുന്നതിന്, browser.cache.disk.enable, browser.cache.memory.enable എന്നിവ കണ്ടെത്തുക. മൂല്യ മണ്ഡലത്തിൽ ശ്രദ്ധ കേന്ദ്രീകരിക്കാം. ഈ രണ്ട് വരികൾക്കും ഉണ്ട് സത്യം. നമുക്ക് അതിനെ കള്ളമാക്കി മാറ്റാം. ഇതിനുശേഷം, എല്ലാ മാറ്റങ്ങളും പ്രാബല്യത്തിൽ വരുന്നതിന് ബ്രൗസർ പുനരാരംഭിക്കുക. 2. Internet Explorer ആണ് ഉപയോഗിക്കുന്നതെങ്കിൽ താഴെ പറയുന്ന കാര്യങ്ങൾ ചെയ്യാം. മെനുവിൽ, "ടൂളുകൾ" തുറക്കുക, തുടർന്ന് "ഇൻ്റർനെറ്റ് ഓപ്ഷനുകൾ" വിൻഡോയിൽ ക്ലിക്കുചെയ്യുക. ബ്രൗസർ പ്രോപ്പർട്ടികൾ വിൻഡോ തുറക്കും. "പൊതുവായ" ടാബിലേക്ക് പോകുക, അവിടെ "ഓപ്ഷനുകൾ" ക്ലിക്ക് ചെയ്യുക.

തുടർന്ന് "സംരക്ഷിച്ച പേജുകളിലേക്കുള്ള അപ്‌ഡേറ്റുകൾക്കായി പരിശോധിക്കുക" സെലക്ടറിൽ, "ഒരിക്കലും" തിരഞ്ഞെടുക്കുക. കാഷിംഗ് പ്രവർത്തനരഹിതമാക്കാൻ, "ഉപയോഗിച്ച ഡിസ്ക് സ്പേസ്" വിൻഡോയ്ക്ക് അടുത്തായി ഒരു പൂജ്യം ഇടുക. അതിനുശേഷം, മാറ്റങ്ങൾ അംഗീകരിക്കാൻ "ശരി" ക്ലിക്ക് ചെയ്യുക.

നിങ്ങൾ ഓപ്പറ ഉപയോഗിക്കുകയാണെങ്കിൽ. Ctrl+F12 കീകൾ അമർത്തുക, തുടർന്ന് " തിരഞ്ഞെടുക്കുക പൊതുവായ ക്രമീകരണങ്ങൾ" നമുക്ക് "വിപുലമായ" ടാബിലേക്ക് പോകാം, തുടർന്ന് "കഥകൾ". "മെമ്മറി കാഷെ" ടാബ്, അതുപോലെ " ഡിസ്ക് കാഷെ»കാഷിംഗ് പ്രവർത്തനരഹിതമാക്കുന്നതിന് മൂല്യം "അപ്രാപ്തമാക്കി" എന്ന് സജ്ജമാക്കുക. "രേഖകൾ പരിശോധിക്കുക", "ചിത്രങ്ങൾ പരിശോധിക്കുക" വിൻഡോകളിൽ, "ഒരിക്കലും" തിരഞ്ഞെടുക്കുക. അപ്പോൾ "ശരി", മാറ്റങ്ങൾ പ്രാബല്യത്തിൽ വരും.

ഉപയോഗിച്ചാൽ Google Chrome. ക്ലിക്ക് ചെയ്യാം റൈറ്റ് ക്ലിക്ക് ചെയ്യുകബ്രൗസർ ലോഞ്ച് കുറുക്കുവഴിയിലേക്ക് മൗസ്. രൂപം ശേഷം സന്ദർഭ മെനു"പ്രോപ്പർട്ടീസ്" വിൻഡോ തിരഞ്ഞെടുക്കുക. അതിനുശേഷം, ദൃശ്യമാകുന്ന വിൻഡോയിൽ, "കുറുക്കുവഴി" ടാബിലേക്ക് പോകുക. ഫയൽ വിലാസം സൂചിപ്പിച്ചിരിക്കുന്ന വിൻഡോയിൽ, "-disk-cache-size=0-media-cache-size=0" ചേർക്കുക. സ്ഥാപിക്കാം ഈ കമാൻഡ്പിന്നിൽ ഫയൽ വിലാസം ഉദ്ധരിക്കുന്നു. മാറ്റങ്ങൾ പ്രയോഗിക്കാം.

ആധുനിക ബ്രൗസറുകൾ അവരുടെ ജോലിയിൽ പലപ്പോഴും ഒരു പ്രാദേശിക കാഷെ ഉപയോഗിക്കുന്നു. എന്താണിതിനർത്ഥം? ഇതിനർത്ഥം, സെർവറിൽ നിന്ന് ഒരു HTML പ്രമാണമോ ചിത്രമോ മറ്റ് ഉറവിടമോ ലഭിച്ച ബ്രൗസർ അതിനെ അതിൻ്റെ പ്രാദേശിക കാഷെയിൽ സ്ഥാപിക്കുന്നു (മറ്റൊരു രീതിയിൽ പറഞ്ഞാൽ, സ്വീകരിച്ച ഉറവിടം ഹാർഡ് ഡ്രൈവ്ഉപയോക്തൃ മെഷീൻ) കൂടാതെ അത്തരം ഒരു റിസോഴ്സിലേക്കുള്ള തുടർന്നുള്ള അഭ്യർത്ഥനകളിൽ സെർവറിൽ പ്രവേശിക്കുന്നില്ല, പക്ഷേ പ്രാദേശിക കാഷെയിൽ നിന്ന് ഉറവിടം നേടുന്നു.

ഈ ബ്രൗസർ അൽഗോരിതം HTML പ്രമാണങ്ങളുടെ ലോഡിംഗ് വേഗത ഗണ്യമായി വർദ്ധിപ്പിക്കുന്നു. റിസോഴ്‌സ് ഇതിനകം ലോഡുചെയ്‌തിട്ടുണ്ടെങ്കിൽ, അതിൻ്റെ ഫലമായി പ്രാദേശിക കാഷെയിൽ സ്ഥിതിചെയ്യുന്നുവെങ്കിൽ, ആക്‌സസ് സമയം നിർണ്ണയിക്കപ്പെടുന്നില്ല ത്രൂപുട്ട്ആശയവിനിമയ ചാനലും (ഉദാഹരണത്തിന്, മോഡം കണക്ഷൻ) വേഗതയും കഠിനാധ്വാനം ചെയ്യുകഡിസ്ക്.

എന്നിരുന്നാലും, ഗുണങ്ങളോടൊപ്പം ഈ രീതികൂടാതെ നിരവധി പ്രശ്നങ്ങൾ സൃഷ്ടിക്കുന്നു. പ്രത്യേകിച്ചും, മിക്ക പുതിയ വെബ് പ്രോഗ്രാമർമാരും, ഡൈനാമിക് സൈറ്റുകൾ വികസിപ്പിക്കുമ്പോൾ, ഇതേ പ്രശ്നം നേരിടുന്നു. ഈ പ്രശ്നത്തിൻ്റെ സാരം, ചില വിവരങ്ങൾ പരിഷ്ക്കരിക്കുന്ന സെർവറിൽ ഒരു സ്ക്രിപ്റ്റ് പ്രവർത്തിപ്പിക്കുന്ന ഒരു പേജിനായി സെർവറുമായി ആവർത്തിച്ച് ബന്ധപ്പെടുന്നതിന് പകരം, ബ്രൗസർ ലോക്കൽ കാഷെ ആക്സസ് ചെയ്യുന്നു എന്നതാണ്. ഉദാഹരണത്തിന്, മൂന്ന് അഭ്യർത്ഥനകളുടെ ഫലമായി, സെർവറിൽ സ്ഥിതി ചെയ്യുന്ന വിവരങ്ങളുടെ മൂന്ന് പരിഷ്കാരങ്ങളല്ല, ഒന്ന് മാത്രം.

ഓരോ തവണയും സെർവറിൽ നിന്ന് ഒരു പേജ് അഭ്യർത്ഥിക്കാൻ ബ്രൗസറിനെ നിർബന്ധിക്കുന്നതിന്, ബ്രൗസറിൽ പ്രവേശിക്കുന്നതിൽ നിന്ന് നിങ്ങൾ വിലക്കേണ്ടതുണ്ട് ഈ വിഭവംകാഷെ ചെയ്യാൻ. കാഷിംഗ് പ്രവർത്തനരഹിതമാക്കുന്നതിനോ ബൈപാസ് ചെയ്യുന്നതിനോ ഉള്ള ഏറ്റവും സാധാരണമായ രീതികൾ ചുവടെയുണ്ട്.

ഒരു പുതിയ URL സൃഷ്ടിക്കുന്നു

അഭ്യർത്ഥിച്ച ഉറവിടത്തിന് ഇനിപ്പറയുന്ന url ഉണ്ടെന്ന് നമുക്ക് അനുമാനിക്കാം: test.html?id=7. നിങ്ങൾക്ക് url ൽ നിന്ന് കാണാൻ കഴിയുന്നതുപോലെ "ഒപ്പം ഒരു പരാമീറ്റർ അതിലേക്ക് കടന്നുപോകുന്നു. ഉദാഹരണത്തിന്, കൂടെ ചേർക്കാം. JavaScript സഹായം, url-ൽ ഒരു പാരാമീറ്റർ കൂടി ഉണ്ട്, ഞങ്ങൾ അതിനെ അതിൻ്റെ മൂല്യമാക്കും ക്രമരഹിത സംഖ്യ. ഫലമായി, url ഇതുപോലെ കാണപ്പെടും: test.html?id=7&rnd=0.6700820127538827. ഓരോ തവണയും ക്രമരഹിതമായ പാരാമീറ്റർ പുതുതായി സൃഷ്ടിക്കപ്പെടും. ഈ സമീപനം പ്രകടമാക്കുന്ന ഒരു ലിസ്റ്റിംഗ് ചുവടെയുണ്ട്:

ഒരു പുതിയ URL പ്രമാണം സൃഷ്ടിക്കുന്നു.write("");

ടെസ്റ്റ് ലിങ്ക്

ഓരോ തവണയും അത്തരത്തിലുള്ള ഒരു അഭ്യർത്ഥനയുടെ ഫലം കാഷെ ചെയ്യപ്പെടും, എന്നാൽ മുഴുവൻ url-ലും കാഷിംഗ് നടത്തുന്നതിനാൽ, ഓരോ തവണയും ഒരു പുതിയ url ലഭിക്കും, കൂടാതെ സെർവറിൽ നിന്ന് ഒരു റിസോഴ്സ് അഭ്യർത്ഥിക്കാൻ ബ്രൗസർ നിർബന്ധിതരാകും. രണ്ട് അഭ്യർത്ഥനകൾ കൃത്യമായി പൊരുത്തപ്പെടുന്നില്ല.

ഹെഡർ ഫീൽഡുകൾ നിങ്ങൾക്ക് സെർവർ വശത്ത് നിന്ന് കാഷെ ചെയ്യാനും നിയന്ത്രിക്കാനാകും. ഇത് നേടുന്നതിന്, ബ്രൗസറിലേക്ക് അയച്ച ഉറവിടം ഹെഡർ ഫീൽഡുകൾക്കൊപ്പമാണ്.വിശദമായ വിവരണം ഹെഡർ ഫീൽഡുകൾ Rfc 2068 സ്റ്റാൻഡേർഡിൽ കാണാം, അത് വിവരിക്കുന്നു 1.1.

HTTP പ്രോട്ടോക്കോൾ

ഹെഡർ ഫീൽഡ് കാലഹരണപ്പെടുന്നു

വിഭവത്തിൻ്റെ ഉള്ളടക്കം കാലഹരണപ്പെടുന്ന തീയതിയാണ് ഈ ഹെഡറിൻ്റെ മൂല്യം. ഈ തീയതിക്ക് ശേഷം ഒരു ഉപയോക്താവ് ഒരു റിസോഴ്‌സ് ആക്‌സസ് ചെയ്യുകയാണെങ്കിൽ, ബ്രൗസർ പ്രാദേശിക കാഷെയിൽ നിന്നല്ല, സെർവറിൽ നിന്ന് ഉറവിടം അഭ്യർത്ഥിക്കണം.< содержит дату, прошедшую, по отношению к текущей, то при следующем обращении к ресурсу браузер будет вынужден снова обратиться к серверу. Это произойдет вследствие того, что либо документ не будет занесен в кэш - как уже устаревший, либо при обращении к кэшу браузер определит, что документ уже устарел. Следующий листинг на PHP демонстрирует использование заголовка Expires:

ഫീൽഡ് > കാലഹരണപ്പെടുകയാണെങ്കിൽ

അവസാനം പരിഷ്കരിച്ച തലക്കെട്ട് ഫീൽഡ് ഈ തലക്കെട്ടിൻ്റെ മൂല്യം തീയതിയാണ്അവസാന അപ്ഡേറ്റ് വിഭവം. ഭൂരിപക്ഷംഉപയോഗിക്കുക അടുത്ത അൽഗോരിതംഉറവിടം ഇതിനകം പ്രാദേശിക കാഷെയിലാണെങ്കിൽ:

  • അവസാന റിസോഴ്സ് അപ്ഡേറ്റ് തീയതി സെർവറിൽ നിന്ന് അഭ്യർത്ഥിക്കുന്നു
  • ലഭിച്ച തീയതിയും പ്രാദേശിക കാഷെയിലെ ഉറവിട തീയതിയും താരതമ്യം ചെയ്യുന്നു
  • റിസോഴ്സ് സെർവറിലാണെങ്കിൽ വിഭവത്തേക്കാൾ പുതിയത്കാഷെയിൽ - സെർവറിൽ നിന്ന് ഒരു ഉറവിടം അഭ്യർത്ഥിക്കുന്നു

സെർവറിൽ സ്ഥിതിചെയ്യുന്ന ഒരു ഉറവിടം ഈ ഫീൽഡിൽ അടങ്ങിയിട്ടുണ്ടെങ്കിൽ നിലവിലെ തീയതി, തുടർന്ന് ബ്രൗസർ ഓരോ തവണയും സെർവറിൽ നിന്ന് ഉറവിടം അഭ്യർത്ഥിക്കും, അല്ലാതെ പ്രാദേശിക കാഷെയിൽ നിന്നല്ല. അവസാനമായി പരിഷ്‌ക്കരിച്ച ഹെഡർ ഫീൽഡിൻ്റെ ഉപയോഗം ഇനിപ്പറയുന്ന ലിസ്റ്റിംഗ് കാണിക്കുന്നു:

തലക്കെട്ട്("അവസാനം പരിഷ്ക്കരിച്ചത്: " . gmdate("D, d M Y H:i:s") . " GMT");

കാഷെ-നിയന്ത്രണവും പ്രാഗ്മ ഹെഡർ ഫീൽഡുകളും

അവസാനമായി, റിസോഴ്‌സ് കാഷിംഗിന് നേരിട്ട് ഉത്തരവാദികളായ ഹെഡർ ഫീൽഡുകൾ. HTTP 1.0 പ്രോട്ടോക്കോൾ വിവരിക്കുന്ന RFC 1945 സ്റ്റാൻഡേർഡിലാണ് ഫീൽഡ് നിർവചിച്ചിരിക്കുന്നത്. ഈ ഫീൽഡ് കാലഹരണപ്പെട്ടതായി കണക്കാക്കപ്പെടുന്നു, എന്നാൽ ചില സന്ദർഭങ്ങളിൽ ഇത് ഉപയോഗിക്കേണ്ടത് ആവശ്യമാണ്. പ്രത്യേകിച്ചും, ഈ ഹെഡർ ഫീൽഡ് റിസോഴ്സിനൊപ്പം അയച്ചിട്ടില്ലെങ്കിൽ, ചില പ്രോക്സി സെർവറുകൾ നിരന്തരം ഉറവിടങ്ങൾ മാറ്റുന്നതിനുള്ള അഭ്യർത്ഥനകൾ ശരിയായി പ്രോസസ്സ് ചെയ്യുന്നില്ല.

HTTP 1.1 പ്രോട്ടോക്കോൾ വിവരിക്കുന്ന RFC 2068 സ്റ്റാൻഡേർഡിലാണ് രണ്ടാമത്തെ ഫീൽഡ് നിർവചിച്ചിരിക്കുന്നത്. ഈ ഹെഡർ ഫീൽഡ് കാഷിംഗ് പ്രവർത്തനരഹിതമാക്കാനും ഓരോ തവണയും സെർവറിൽ നിന്ന് ഒരു റിസോഴ്സ് അഭ്യർത്ഥിക്കാനും നിങ്ങളെ അനുവദിക്കുന്നു. കാഷിംഗ് പ്രവർത്തനരഹിതമാക്കുന്നതിന് കാഷെ-നിയന്ത്രണത്തിൻ്റെയും പ്രാഗ്മ ഹെഡർ ഫീൽഡുകളുടെയും ഉപയോഗം ഇനിപ്പറയുന്ന ലിസ്റ്റിംഗ് കാണിക്കുന്നു:

തലക്കെട്ട്("കാഷെ-നിയന്ത്രണം: നോ-കാഷെ, വീണ്ടും മൂല്യനിർണ്ണയം"); തലക്കെട്ട് ("പ്രാഗ്മ: നോ-കാഷെ");

വെബ്‌മാസ്റ്റർമാർ പലപ്പോഴും കാഷിംഗ് നേരിടുന്നു: ബ്രൗസറുകളും പ്രോക്സി സെർവറുകളും, ഉപയോക്താവിനായി വെബ് വേഗത്തിലാക്കാൻ ശ്രമിക്കുന്നു, അവരുടെ കാഷെയിൽ കഴിയുന്നത്ര പ്രമാണങ്ങൾ സംഭരിക്കാൻ ശ്രമിക്കുക.

ചിലപ്പോൾ, ഒരു പേജ് കാഷെ ചെയ്യുന്നതിൽ നിന്ന് ബ്രൗസറിനെ തടയേണ്ടത് ആവശ്യമായി വന്നേക്കാം, കാരണം അതിലെ വിവരങ്ങൾ ഓരോ തവണയും അപ്ഡേറ്റ് ചെയ്യപ്പെടുന്നു. ഇത് തിരഞ്ഞെടുത്ത ഫിൽട്ടറുകൾ അല്ലെങ്കിൽ ഓരോ തവണയും പുതിയ രീതിയിൽ സൃഷ്ടിക്കുന്ന മറ്റ് ഉള്ളടക്കങ്ങൾക്കനുസരിച്ചുള്ള ഡാറ്റയുടെ ജനറേഷൻ ആകാം. ചുരുക്കത്തിൽ, ഒരു വഞ്ചനാപരമായ പ്രോഗ്രാം ഒരു പേജ് കാഷെ ചെയ്യുന്നതിൽ നിന്ന് തടയേണ്ട സമയങ്ങളുണ്ട്. PHP അല്ലെങ്കിൽ HTML അല്ലെങ്കിൽ .htaccess ഉപയോഗിച്ച് ഇത് എങ്ങനെ വ്യത്യസ്ത രീതികളിൽ നടപ്പിലാക്കാമെന്ന് ഇന്ന് നമ്മൾ പഠിക്കും

HTML-ൽ പേജ് കാഷെ ചെയ്യുന്നത് നിരോധിക്കുന്നു

മെറ്റാ ടാഗുകൾ ഉപയോഗിച്ച് ഇത് ചെയ്യാൻ കഴിയും.
ബ്രൗസറും പ്രോക്സി സെർവറും ഉപയോഗിച്ച് കാഷെ ചെയ്യുന്നതിനുള്ള നിരോധനം

പേജ് കാഷിംഗ് പ്രവർത്തനരഹിതമാക്കുക, ബ്രൗസർ മാത്രം

ബ്രൗസറിനായി ഒരു നിർദ്ദിഷ്‌ട സമയത്തേക്ക് കാഷിംഗ് സജ്ജീകരിക്കുന്നു

ചുവടെയുള്ള കോഡ് ഉപയോഗിച്ച്, ഡോക്യുമെൻ്റ് എത്രനേരം കാഷെയിൽ സൂക്ഷിക്കണമെന്ന് നമുക്ക് ബ്രൗസറിനോട് പറയാൻ കഴിയും. അതിനുശേഷം, കാഷെ അപ്ഡേറ്റ് ചെയ്യും.

ഒരു പ്രോക്‌സി സെർവറിനായി ഒരു നിർദ്ദിഷ്‌ട സമയത്തേക്ക് കാഷിംഗ് സജ്ജീകരിക്കുന്നു
പ്രായോഗികമായി, മുമ്പത്തെ കോഡിലെ പോലെ തന്നെ, പ്രോക്സി സെർവറിനുള്ള സൂചന മാത്രമാണ്.

PHP ഉപയോഗിച്ച് പേജ് കാഷെ ചെയ്യുന്നത് തടയുക

പ്രായോഗികമായി, എല്ലാം HTML-ൻ്റെ കാര്യത്തിലേതിന് സമാനമാണ്, തലക്കെട്ടുകളിലൂടെ മാത്രമേ ഞങ്ങൾ വിവരങ്ങൾ പ്രദർശിപ്പിക്കുകയുള്ളൂ. ഒരു സമ്പൂർണ്ണ കാഷെ നിഷേധം എങ്ങനെ നടപ്പിലാക്കാം എന്നത് ഇതാ:

നിങ്ങൾക്ക് ഒരു നിശ്ചിത സമയത്തേക്ക് കാഷെ ചെയ്യാനും അനുവദിക്കാം. ഉദാഹരണത്തിന്, 1 മണിക്കൂർ മാത്രം കാഷെ ചെയ്യാൻ അനുവദിക്കുക.

.htaccess ഉപയോഗിച്ച് പേജ് കാഷെ ചെയ്യുന്നത് തടയുക

ആശയം നടപ്പിലാക്കുന്നത് എളുപ്പമാക്കുന്നതിന്, എല്ലാം അപ്പാച്ചെ സെർവർ കോൺഫിഗറേഷൻ തലത്തിൽ ചെയ്യാവുന്നതാണ്. ഇതിന് മുമ്പ്, ആവശ്യമായ മൊഡ്യൂളുകൾ പ്രവർത്തന ക്രമത്തിലാണെന്ന് ഞങ്ങൾ ഉറപ്പാക്കേണ്ടതുണ്ട്. അപ്പാച്ചെ കോൺഫിഗറേഷൻ ഫയൽ തുറന്ന് ഇനിപ്പറയുന്ന ചിത്രം കാണുക:

LoadModule expires_module modules/mod_expires.so
LoadModule headers_module modules/mod_headers.so
...
AddModule mod_expires.c
AddModule mod_headers.c

ഇപ്പോൾ .htaccess ഫയലിൽ, ഔട്ട്‌പുട്ട് ഡാറ്റ കാഷെ ചെയ്യുന്നത് ഞങ്ങൾ യഥാർത്ഥത്തിൽ നിരോധിക്കുന്നു. നമുക്കറിയാവുന്നതുപോലെ, .htaccess ഫയൽ അത് സ്ഥിതിചെയ്യുന്ന ഡയറക്‌ടറിയിലേക്കും എല്ലാ ഉപഡയറക്‌ടറികളിലേക്കും വിതരണം ചെയ്യും.

# Header Cache-Control Header append Cache-Control "no-store, no-cache, must-revalidate" # Header ExpiresActive on ExpiresDefault "ഇപ്പോൾ"

കാഷിംഗ് പൂർണ്ണമായും നിരോധിക്കുന്നത് സെർവറിലെ ലോഡ് വർദ്ധിപ്പിക്കും എന്നത് ശ്രദ്ധിക്കേണ്ടതാണ്. അതിനാൽ, ഇത് ശ്രദ്ധാപൂർവ്വം കളിക്കുക! ഇതിലും മികച്ചത്, നിങ്ങൾക്ക് പ്രമാണങ്ങൾ കാഷെ ചെയ്യാൻ കഴിയുന്ന ഒരു പ്രത്യേക സമയം സജ്ജമാക്കുക. ഉദാഹരണത്തിന്, നമുക്ക് 1 മണിക്കൂർ കാഷിംഗ് സജ്ജമാക്കാം:

# ഹെഡർ കാഷെ-നിയന്ത്രണ തലക്കെട്ട് കൂട്ടിച്ചേർക്കുക കാഷെ-നിയന്ത്രണം "പബ്ലിക്" # ഹെഡർ കാലഹരണപ്പെടുന്നു സജീവം കാലഹരണപ്പെടുന്നു ഡിഫോൾട്ട് "ആക്സസും 1 മണിക്കൂറും"