Nu cache

browserelor moderne frecvent utilizate de către memoria cache locală. Ce înseamnă acest lucru? Acest lucru înseamnă că browser-ul primit de la serverul HTML-document, imagine sau altă resursă, îl pune în cache locală (cu alte cuvinte, înregistrările obținute de resursa de pe hard disk masina unui utilizator) și la o astfel de resurse în solicitările viitoare nu contactează serverul, și primește o resursă de la o memorie cache locală.

Acest algoritm de browser-ul crește dramatic viteza de încărcare document HTML. Deoarece în cazul în care este încărcat resursa, și ca rezultat este în memoria cache locală, timpul de acces nu este determinată de capacitatea capacității de canal de comunicare (de exemplu, conexiune modem) și viteza de pe hard disk.

Cu toate acestea, împreună cu avantajele acestei metode ridică, de asemenea, o serie de probleme. În special, cel mai novice web programatori pentru a dezvolta site-uri dinamice, cu care se confruntă cu aceeași problemă. Esența problemei constă în faptul că, în loc de re-contacta serverul pentru o pagină, script-ul ruleaza pe server, modificarea anumitor informații, browser-ul se duce la cache-ul local. Ca urmare, aceste trei referințe, nu există nici trei modificări ale informațiilor situate pe server și doar unul.

Pentru ca ar forta browser-ul de fiecare dată pentru a aplica pentru o pagină de pe serverul pe care doriți să împiedice browserul să introduceți resursa în cache. Aici sunt cele mai frecvente metode pentru a interzice punerea în cache sau care le permit să obțineți în jurul valorii.

Generează o nouă adresă URL

De fiecare dată rezultatul interogării va fi salvată în memoria cache, dar din moment ce cache este realizată în jurul URL-ul, apoi de fiecare dată când o nouă adresă URL, iar browser-ul va dovedi a fi obligat să solicite resursa de la server ca URL două interogări nu se va potrivi exact.

câmpurile de antet

Gestionați cache, puteți, de asemenea, pe partea de server. Pentru această resursă, trimis la browser-ul, urmat de câmpuri antet. O descriere detaliată a câmpurilor de antet pot fi găsite în standardul Rfc 2068 care descrie protocolul HTTP 1.1.

Expiră câmp de antet

Valoarea acestui titlu este data după care conținutul resursei vor deveni caduce. În cazul în care utilizatorul după această dată pentru a accesa o resursă, browser-ul trebuie să solicite resursa de pe server, mai degrabă decât din memoria cache locală.

În cazul în care câmpul> Expiră<содержит дату, прошедшую, по отношению к текущей, то при следующем обращении к ресурсу браузер будет вынужден снова обратиться к серверу. Это произойдет вследствие того, что либо документ не будет занесен в кэш - как уже устаревший, либо при обращении к кэшу браузер определит, что документ уже устарел. Следующий листинг на PHP демонстрирует использование заголовка Expires:

câmp antet Last-Modified

Valoarea acestui titlu este data ultimei actualizări a resursei. Cele mai multe browsere moderne folosesc următorul algoritm, în cazul în care resursa este deja în memoria cache locală:

  • cere de la server ultima actualizare a resursei
  • compară data primirii și data resursei în memoria cache locală
  • în cazul în care resursa de pe serverul de resurse este mai nou în cache - resursa solicitată de la server

Dacă o resursă situată pe un server care conține acest câmp este data curentă, browser-ul de fiecare dată când va solicita o resursa de pe server, mai degrabă decât din memoria cache locală. Următoarea listă demonstrează utilizarea câmpului antet Last-Modified:

câmp de antet Cache-Control și Pragma

În cele din urmă, câmpul antet direct responsabil de resurse cache. câmp Acesta a fost definit în standardul RFC 1945 descrie HTTP 1.0 protocol. Acest câmp este depreciat, dar în unele cazuri, este necesar să-l folosească. În special, unele servere proxy mâner incorect cererile de resurse în continuă schimbare, în cazul în care cuplat cu o resursă nu acest câmp antet este transmis.

Al doilea câmp este definit în standardul RFC 2068 care descrie protocolul HTTP 1.1. Acest câmp antet vă permite să dezactivați cache, de fiecare dată pentru a solicita o resursa de la server. Următoarea listă demonstrează utilizarea Cache-Control câmp de antet și Pragma pentru nici un cache: