Вебкешування
«Вебкеш» (або «кеш HTTP») — інформаційна технологія для тимчасового зберігання (кешування) вебдокументів і зображень задля зменшення серверних затримок. Система вебкешу зберігає копії документів, що проходять через неї; подальші запити можуть бути виконані з кешу за певних умов[1]. Система вебкешу може посилатися або на програмно-апаратний комплекс, або на комп'ютерну програму.
Вебкеші можуть використовуватися в різних системах (з погляду доставки вебвмісту):
Прямий кеш (англ. 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 | 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 | Linux | Так | Так | Власницька |
Varnish[en] | Linux, Unix | Так (можливо з VMOD) | Так | BSD |
WinGate[en] | Windows | Так | Так | Власницька / Безкоштовно для трьох користувачів |
Nuster | Linux, Unix | Так | Так | GNU General Public License |
- Content delivery network (CDN)
- Google Web Accelerator
- Вебприскорювач[en]
- Маніфест кешу в HTML5[en]
- Прогресивний вебзастосунок
- Проект Harvest[en]
- Проксі-сервер
- ↑ Х'юстон, Джефф. Web Caching [Вебкешування]. Cisco. The Internet Protocol Journal (англійською) . 2 (3). Архів оригіналу за 23 вересня 2015. Процитовано 10 вересня 2009.
- ↑ Шиндер, Томас. Understanding Web Caching Concepts for the ISA Firewall [Розуміння принципів вебкешування для фаєрволу ISA] (англійською) . Архів оригіналу за 16 січня 2013. Процитовано 27 лютого 2011.
- ↑ Network-Aware Forward Caching. — CiteSeer, 2008. Архівовано з джерела 1 квітня 2011. Процитовано 26 грудня 2017.
- ↑ Web application / Caching. Docforge. Архів оригіналу за 12 грудня 2019. Процитовано 6 березня 2010.
- ↑ Келлі, Майк; Гаусенблас, Майкл (2010). Using HTTP Link: Header for Gateway Cache Invalidation [Використання заголовку HTTP Link для анулювання кешу шлюзу] (PDF) (англійською) . Архів оригіналу (PDF) за 10 листопада 2013. Процитовано 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.
- Web caching in general with some references to SQUID (PDF). Архів оригіналу (PDF) за 23 грудня 2011. Процитовано 26 грудня 2017. (англ.)