ПредишенСледващото

Малко кеширане

Уеб администратори често са изправени пред кеширане: браузър и прокси сървър, като се опитва да се ускори работата сайта, се опита да запази колкото е възможно по-голям брой документи в кеша. Ако отворите страница на сайта в браузъра, след това друг, и след това обратно към първия, с голяма вероятност браузърът ще го вземе от вашия твърд диск (или дори по памет), където държеше на страницата, на първото посещение.

Ясно е, че тази операция обикновено се извършва много по-бързо, отколкото получаването на същия документ от мрежата. В крайна сметка, за да се покаже на страницата трябва не само да получите HTML кода, но за изпомпване на всички документи, свързани с мрежата: CSS-файлове, изображения, скриптове, предназначени както отделни файлове и т.н. Ако се вгледате в папката на кеша на вашия диск (за IE, тази папка обикновено се намира тук: «C: \ Документи и настройки \ потребителско име \ Local Settings \ Temporary Internet Files», за Firefox: «C: \ Documents и Settings \ потребителско име \ Local Settings \ Application Data \ Mozilla \ Firefox \ Profiles \ _sluchaynaya_stroka_. подразбиране \ Cache »), ще забележите колко файлове са били спасени от вашия браузър.

Разбира се, голямата кеш ускорява работата, но, от друга страна, на кеш паметта може да играе отрицателна роля.

Например, ако има кеширан чат, потребителите просто няма да виждате нови съобщения. Уеб администратори често считат кеш зло, и да се борят срещу това зло в най-доброто от способността им.

Проблемът с кеширане в Microsoft Internet Explorer

или набор Изтича хедър на последния ден от вашия скрипт, който генерира XML съдържание. В PHP, това ще бъде, както следва:

проверка на кеша

Препоръчваме ви да прочетете Как да добавите нов сайт, за да FastVPS

Лесно е да се види, че в този пример ние се опитваме да забраните кеширането рецепта Wikipedia, а просто показва текущото време.

Отличен! Сега кликнете върху файла си тест-1.php и помня времето (например, аз афиш прозорец на браузъра, до часовника Windows):

Чудесно! Сега кликнете на бутона "Назад" и след това "Напред" на браузъра:

Upc! Време не се променя. Какво означава това? Да, точно, необходимо на браузъра на страница от кеша. А нашата енциклопедичен код? Да, това не работи!

Отиди до извора

Какъв е проблемът? Проблемът е, злоупотреба с заглавията на отговор. кешира спецификация RFC2616 посветена цяла глава. Но, за съжаление, не уебмастъри често четат спецификацията. И така, какво представляват тези заглавия, които ние просто преминали? Нека да ги види. Това е много удобно да се направи с помощта на добавка към Web Developer Toolbar браузъра Firefox. Информация. Вижте Response Headers (IE-като инструмент, наречен DevToolbar):

Така минахме следните заглавки:

Така да се каже: "Дай на документа, ако тя се е променило след тази дата", и сървъра трябва да отговори или 200 ( "Този документ, той се е променило!" Или 304 "Промяната не е така." Но за да стане това, вашият сървър трябва да предаде заглавна Last- Променено, а не само да премине, и предава правилната дата на промени в документа. Но ние сме, със собствените си ръце, и глупав енциклопедичен код напълно унищожени последните надежди за него! това е, не само, че ние сме на кеш паметта не е забранен, ние все още търсачките (и по-точно, самите) са ограбени напълно! След като изпратите текущата дата като дата последните една промяна, помниш ли?

Cache-Control: не-кеша, трябва опресняването - тук, по-близо до обекта. Тя управлява кеширането с глава, но не и себе си, и във връзка с другите. Сега ние просто заповяда: "да използва информацията, след заявката без повторна проверка на сървъра източник не може да бъде» (Ако директивата за не-кеша не посочи имена поле, а след това кеш не трябва да използва отговор за задоволяване на последваща молба, без да успешното презаверяване със сървъра на произход). По принцип, по начин - екип не за браузъра и прокси сървъра.

Pragma: не-кеша - стария дизайн. Това е от версията на HTTP / 1.0 протокол стар. Почти всички браузъри и прокси не му обърнат внимание. Така че, ние виждаме, че нито един от нашите линии на PHP код кеш наистина не е забранен. Какво да се прави? Ето какво:

забрана за кеширане

Запазете тест-1.php файл с ново име на тест-2.PHP и го промените, както следва:

Сега се опитайте отново да отворите нашия тест папка // Localhost / тест-кеш /. кликнете върху името тест-2.PHP сега осребряване на бутона "Назад", "Напред". Време променят всеки път! И той казва, че браузърът не е като страница от кеша при превключване напред / назад, и отново го поиска от сървъра. Какво, всъщност, ще ни трябва. Нека да видим заглавията на отговор:

Това е! Минаваме две заглавия:

Cache-Control: не-магазин - страница съдържа лични данни в кеша не могат да бъдат спасени! (Целта на директивата за не-магазин е да се предотврати случайното освобождаване или задържане на чувствителна информация (например, на резервната ленти))

И тези заглавия забраняват кеширане в браузъра. Но все пак по-правилно да се добави в Cache-Control заглавието и инструкции за прокси сървъри (тест-3.php файл) на:

Практически кеширане забрана

Отличен! Сега просто създадете папка във файла .htaccess и въведете следното в него:

Всичко! Необходими заглавията се изпращат автоматично и по-специално на писане вече не е необходимо в PHP - кеша вече е изключен! Това се вижда добре, ако погледнем заглавията да бъдат изпратени по искане на който и да е файл в тази папка:

разрешително за кеширане

Но, независимо от факта, че по-голямата част от уебмастъри вярвам кешира универсално зло, и се опитва да го забрани (и както видяхме, доста неуспешно), това не е така! Не кеш, да ви принуди браузъра всеки път, за да заредите отново страницата от сървъра, и ако връзката на потребителя е слаба, тя може да доведе до по-маркиран забавяне на вашия сайт. Аз не говоря за това, че това води до увеличаване на натоварването на сървъра си! Ако вашата страница или част от него формира заявка към базата данни, трябва освен това ще се увеличава натоварването на сървъра на базата данни, която може да се отрази негативно върху работата на вашия сървър като цяло. Вие разбирате какво искам да кажа, например, погледнете работата Odnoklassniki! Някои уебмастъри да се похвали и завеждането на такива "статистика" в долната част на страницата, "Страница генерирана за 0,9 секунди, преминал 9 SQL запитвания." Нищо друго, освен абсолютно безсмислени архитектура уеб приложения, като не показват!

Така че нека да се опитаме по друг начин да се разтоварят на сървъра и ускоряване на работата на нашите албуми! И кеша в този случай - един от най-мощните инструменти! Е, моля да ми кажете колко често се променя вашата страница "За нас"? Или какво се случва, ако потребителят види вашето новини ( "Ура! Ние се премести в нов двигател") час по-късно? Така че, защо да забрани кеширането на страници

Опитайте се да запазите отново нашия тестов файл име тест-4.php и пише следните редове в него:

Резолюция на съдържанието на кеша на папките

Дори можете да направите, без PHP. Създайте подпапка във файла .htaccess и въведете следното в него:

Възможност за активиране страници в кеша значително подобрява скоростта на уеб сървър и частично се освободи от много повторни посещения в тях. Разрешение кеширане прокси сървър е посочено в заглавието на глава:

ExpiresActive на директивата включва кеширане на изображения, които позволяват по-бързо зареждане на повтаряща се позоваване на страниците му.

Директива ExpiresByType изображение / JPEG "достъп плюс три дни" и ExpiresByType изображение / GIF "достъп плюс три дни". от своя страна, определи формата на изображението, и периода, за който ще се извършва кеширане. По подразбиране, кеширане се извършва .jpeg формат изображения и .gif за 1 ден.

Резултатът, както се казва, се вижда с невъоръжено око. Това е особено ефективно да се направи за графичното оформление на страници, които съдържат променливо съдържание рядко или често посещавани страници, например, за стартиране.

Само препоръка: първо напълно отстраняване на грешки в сайта си и едва след това да включите кеширане! В противен случай, рискувате за грешки побелява и тотално разочарован в уеб-базиран Желая ти късмет и успех с кеша!

Свързани статии

Подкрепете проекта - споделете линка, благодаря!