Internet Content Adaptation Protocol ( ICAP ) — это облегченный протокол типа HTTP, описанный в RFC 3507, который используется для расширения прозрачных прокси-серверов , тем самым освобождая ресурсы и стандартизируя способ внедрения новых функций. ICAP обычно используется для реализации сканирования на вирусы и фильтров контента в кэшах прозрачных прокси-серверов HTTP. Адаптация контента относится к выполнению определенной услуги с добавленной стоимостью (манипулирование контентом) для соответствующего запроса/ответа клиента.
ICAP концентрируется на использовании периферийных устройств ( кэширующих прокси-серверов ) для предоставления услуг с добавленной стоимостью . В основе этого процесса лежит кэш, который будет проксировать все клиентские транзакции и обрабатывать их через веб-серверы . Эти серверы ICAP сосредоточены на определенной функции, например, вставке рекламы, сканировании на вирусы , сканировании нескольких AV-файлов, переводе контента, языковом переводе или фильтрации контента . Разгрузка услуг с добавленной стоимостью с веб-серверов на серверы ICAP позволяет масштабировать эти же веб-серверы в соответствии с чистой пропускной способностью HTTP, не выполняя эти дополнительные задачи.
ICAP был предложен в конце 1999 года Питером Данцигом и Джоном Шустером [1] из Network Appliance . [2] Дон Джиллис взял на себя руководство проектом весной 2000 года и усовершенствовал протокол тремя основными способами:
Джиллис создал прототип первого клиента и сервера ICAP для серии интернет-кэшей NetCache в середине 2000 года (известный как протокол ICAP 0.9) и подготовил учебные материалы для поставщиков. Клиент был написан на C++ в ядре сервера NetCache, а демонстрационный сервер ICAP был написан на Perl и использовал фильтры замены слов Debian для переписывания веб-страниц, пропуская теги HTML и переводя веб-страницы в Swedish Chef или Jive в реальном времени. [3] Используя знания, полученные в ходе прототипирования, Джиллис пересмотрел проект стандарта IETF, чтобы сделать RPC с использованием только фрагментированного кодирования, что значительно упростило протокол ICAP. [1]