Урок за кеширане, част 1
Доста подробно и интересно представяне на материали, свързани с кеша и използването.
Авторът Марк Нотингам е признат експерт в областта на HTTP протокола и уеб кеширането. Той е председател на IETF HTTPbis Работна група. Допринесъл за редактиране на HTTP/1.1, част. 6: Кеширане. В момента допринася за развитието на HTTP/2.0.
От преводача: моля, съобщавайте за грешки при грешки и неточности в лично съобщение. Благодаря.
Има две основни причини, поради които се използва уеб кешът:
един. Намалено време за изчакване - тъй като данните при поискване се вземат от кеша (който се намира „по-близо“ до клиента), отнема по-малко време за получаване и показване на съдържание от страна на клиента. Това прави мрежата по-отзивчива (бележка на преводача - „отзивчива“ в контекста на бърз отговор на заявка, а не емоционално).
2. Намален мрежов трафик - повторното използване на съдържанието намалява количеството данни, предавани на клиента. Това от своя страна спестява пари, ако клиентът плаща за трафик и поддържа изискванията за честотна лента по-ниски и по-гъвкави.
Видове уеб кешове
Кеш на браузъра
Този кеш е особено полезен, когато потребителят щракне върху бутона за връщане назад или върху връзка, за да види страницата, която току-що е разгледал. Също така, ако използвате едни и същи навигационни изображения на вашия сайт, те ще бъдат извлечени от кеша на браузъра почти моментално.
Прокси кеш
Прокси кешът работи по подобен начин, но в много по-голям мащаб. Пълномощниците обслужват стотици или хиляди потребители; големите корпорации и доставчиците на интернет услуги често ги конфигурират на своите защитни стени или ги използват като отделни устройства (посредници).
Прокси кешовете са вид споделен кеш: вместо да обслужват един човек, те обслужват голям брой потребители и следователно са много добри в намаляването на латентността и мрежовия трафик. Главно защото популярното съдържание се иска многократно.
Кеш на шлюза
Известни също като „кеш на обратен прокси“ или „сурогатен кеш“, шлюзовете също са посредници, но вместо да се използват от системните администратори за запазване на честотната лента, те обикновено се използват от уебмастърите, за да направят сайтовете си по-мащабируеми, надеждни и ефективни.
Заявките могат да бъдат препращани към шлюзове по редица методи, но обикновено се използва балансиращ товар в една или друга форма.
Мрежите за доставка на съдържание (CDN) разпространяват шлюзове в Интернет (или част от него) и обслужват кеширано съдържание на заинтересовани уебсайтове. Speedera и Akamai са примери за CDN.
Този урок се фокусира предимно върху кеша на браузъра и прокситата, но известна информация е подходяща и за тези, които се интересуват от шлюзовете.
Защо да го използвам
Кеширането е една от най-неразбраните технологии в интернет. По-специално уебмастърите се страхуват да не загубят контрол над сайта си, защото прокситата могат да „скрият“ своите потребители, което затруднява наблюдението на трафика.
За тяхно съжаление (уебмастърите), дори ако уеб кешът не съществуваше, в Интернет има твърде много променливи, за да се гарантира, че собствениците на сайтове ще могат да получат точна картина за това как потребителите използват даден сайт. Ако това е голям проблем за вас, това ръководство ще ви научи как да получите статистиката, от която се нуждаете, без да правите вашия сайт „кеш хейтър“.
Друг проблем е, че кешът може да съхранява съдържание, което е остаряло или е изтекло.
От друга страна, ако сте отговорни за проектирането на вашия уеб сайт, кешът може да помогне за по-бързо зареждане и поддържане на натоварването на сървъра и интернет в приемливи граници. Разликата може да бъде драматична: може да отнеме няколко секунди, за да се зареди сайт, който не е кеширан; докато предимствата от използването на кеширане могат да го направят бърз. Потребителите ще оценят бързото време за зареждане на сайта и могат да го посещават по-често.
CDN са интересна разработка от тази гледна точка, тъй като за разлика от много прокси кешове, техните шлюзове са съобразени с интересите на кеширания уебсайт. Въпреки това, дори когато използвате CDN, все пак трябва да имате предвид, че ще има прокси и последващо кеширане на браузъра.
В обобщение, прокситата и кешът на браузъра ще бъдат използвани, независимо дали ви харесва или не. Не забравяйте, че ако не конфигурирате сайта си да кешира правилно, той ще използва настройките на кеша по подразбиране.
Как работи уеб кешът
Всички видове кешове имат специфичен набор от правила, които използват, за да определят кога да получат съдържание от кеша, ако са налични. Някои от тези правила се задават от протоколи (HTTP 1.0/HTTP 1.1), някои се задават от кеш администратори (потребители на браузъра или прокси администратори).
Най-общо казано, това са най-общите правила (не се притеснявайте, ако не разбирате подробностите, те ще бъдат обяснени по-долу):
Свежото съдържание се взема директно от кеша, без проверка от сървъра.
Ако отговорът няма валидатор (ETag или Last-Modified header) и не съдържа изрична информация за свежест, съдържанието обикновено (но не винаги) ще се счита за кешируемо.
Свежест (свежест) и валидиране (валидиране) са най-важните начини, по които кешът работи със съдържание. Свежото съдържание ще бъде достъпно незабавно от кеша; валидното съдържание ще избегне повторното изпращане на всички пакети, ако не е било променено.