Веб-кешування

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку

«Веб-кеш» (або «кеш HTTP») — інформаційна технологія для тимчасового зберігання (кешування) веб-документів і зображень задля зменшення серверних затримок. Система веб-кешу зберігає копії документів, що проходять через неї; подальші запити можуть бути виконані з кешу за певних умов[1]. Система веб-кешу може посилатися або на програмно-апаратний комплекс[en], або на комп'ютерну програму.

Системи[ред. | ред. код]

Веб-кеші можуть використовуватися в різних системах (з погляду доставки веб-вмісту):

Система прямого позиціювання (одержувач або бік клієнта)[ред. | ред. код]

Прямий кеш (англ. forward cache) — кеш поза мережею веб-сервера, наприклад, на клієнтському комп'ютері, в інтернет-провайдера або в корпоративній мережі[2]. Прямий мережевий[уточнити] кеш подібний до звичайного прямого кешу, але кешує лише важкодоступні елементи[3]. Клієнт, як-от веб-браузер, може також зберігати веб-вміст для повторного використання. Наприклад, при натисканні кнопки «Назад», локальна кешована версія сторінки може бути показана замість надсилання нового запиту веб-серверу. Веб-проксі, розташований між клієнтом і сервером, може оцінювати заголовок HTTP й обирати, чи варто зберігати веб-вміст.

Система зворотного позиціювання (постачальник контенту або бік веб-сервера)[ред. | ред. код]

Зворотний кеш (англ. reverse cache) розташований перед одним або декількома веб-серверами та веб-застосунками, прискорюючи запити з Інтернету[4] та знижуючи пікове завантаження веб-сервера. Мережа доставки вмісту (CDN) може зберігати копії веб-вмісту на різних точках по всій мережі. Пошукова система також може кешувати веб-сайт; це забезпечує спосіб отримання інформації з нещодавно закритих веб-сайтів або спосіб отримання даних швидше за натискання прямого посилання. Так, наприклад, робить Google. Посилання на кешований вміст можна знайти в результатах пошуку Google.

Управління кешем[ред. | ред. код]

HTTP визначає три основні механізми управління кешем: свіжість, перевірка й анулювання[5]:

Свіжість (англ. freshness)
дозволяє використовувати відповідь без повторної її перевірки на початковому сервері, і може керуватися і сервером, і клієнтом. Наприклад, заголовок відповіді «Закінчується» (англ. Expires) дає дату, коли документ стає застарілим, а директива Cache-Control: max-age повідомляє кешу, скільки секунд відповідь є свіжою.
Перевірка (англ. validation)
може використовуватися для перевірки того, чи досі кешована відповідь добра після того, як вона застаріла. Наприклад, якщо відповідь має заголовок Last-Modified, кеш може зробити «умовний запит» із використанням заголовку If-Modified-Since, щоб побачити, чи він змінився. Механізм ETag (англ. entity tag — тег сутності) також дозволяє як сильну, так і слабку перевірку.
Анулювання (англ. invalidation)
зазвичай є побічним ефектом іншого запиту, який проходить через кеш. Наприклад, якщо URL, пов'язаний із кешованою відповіддю, отримує запит POST, PUT або DELETE, кешована відповідь буде анульована.

Багато мереж доставки вмісту та виробників мережевого обладнання замінюють таке стандартне управління кешем HTTP динамічним кешуванням.

Правові питання[ред. | ред. код]

1998 року DMCA додав правила до Кодексу Сполучених Штатів (17 К.С.Ш. §512[en]), які звільняють системних операторів від відповідальності за авторське право для цілей кешування.

Програмне забезпечення веб-кешування[ред. | ред. код]

Нижче наведено список спеціалізованого серверного програмного забезпечення для веб-кешування:

Назва Операційна система Прямий режим Зворотний режим Ліцензія
Apache HTTP Server Windows, OS X, Linux, Unix, FreeBSD, Solaris, Novell NetWare, OS/2, TPF, OpenVMS та eComStation Ні Так Apache License 2.0
aiScaler[en] Dynamic Cache Control Linux Так Так Власницька
ApplianSys CACHEbox[en] Linux Так Так Власницька
Blue Coat[en] ProxySG SGOS Так Так Власницька
Nginx Linux, різновиди BSD, OS X, Solaris, AIX, HP-UX, інші *nix-подібні Так Так 2-clause BSD-подібна
Microsoft Forefront Threat Management Gateway[en] Windows Так Так Власницька
Polipo[en] Windows, OS X, Linux, OpenWrt, FreeBSD Так Так MIT License
Squid Linux, Unix, Windows Так Так GNU General Public License
Traffic Server Linux, Unix Так Так Apache License 2.0
Untangle[en] Linux Так Так Власницька
Varnish[en] Linux, Unix Так (можливо з VMOD) Так BSD
WinGate[en] Windows Так Так Власницька / Безкоштовно для трьох користувачів
Nuster Linux, Unix Так Так GNU General Public License

Див. також[ред. | ред. код]

Примітки[ред. | ред. код]

  1. Х'юстон, Джефф. Web Caching [Веб-кешування]. Cisco. The Internet Protocol Journal (англійською) 2 (3). Процитовано 10 вересня 2009. 
  2. Шиндер, Томас. Understanding Web Caching Concepts for the ISA Firewall [Розуміння принципів веб-кешування для фаєрволу ISA] (англійською). Процитовано 27 лютого 2011. 
  3. Network-Aware Forward Caching. — CiteSeer, 2008.
  4. Web application / Caching. Docforge. Процитовано 6 березня 2010. 
  5. Келлі, Майк; Гаусенблас, Майкл (2010). Using HTTP Link: Header for Gateway Cache Invalidation [Використання заголовку HTTP Link для анулювання кешу шлюзу] (PDF) (англійською). Процитовано 14 червня 2013. 

Література[ред. | ред. код]

  • Луотонен, Арі (1997). Web Proxy Servers. Prentice Hall. ISBN 0-13-680612-0. 
  • Весселс, Дуане (2001). Web Caching. O'Reilly and Associates. ISBN 1-56592-536-X. 
  • Рабинович, Майкл; Спатщак, Олівер (2001). Web Caching and Replication. Addison Wesley. ISBN 0-201-61570-3. 

Посилання[ред. | ред. код]