Internet Content Adaptation Protocol
The Internet Content Adaptation Protocol (ICAP) is a lightweight HTTP-like protocol specified in RFC 3507 which is used to extend transparent proxy servers, thereby freeing up resources and standardizing the way in which new features are implemented. ICAP is generally used to implement virus scanning and content filters (including censorware) in transparent HTTP proxy caches. Content Adaptation refers to performing the particular value added service (content manipulation) for the associated client request/response.
||This section appears to contain a large number of buzzwords. (September 2011)|
ICAP concentrates on leveraging edge-based devices (caching proxies) to help deliver value-added services. At the core of this process is a cache that will proxy all client transactions and will process them through ICAP Web servers. These ICAP servers are focused on a specific function, for example, ad insertion, virus scanning, content translation, language translation, or content filtering. Off-loading value-added services from Web servers to ICAP servers allows those same web servers to be scaled according to raw HTTP throughput versus having to handle these extra tasks.
ICAP was proposed in late 1999 by Peter Danzig and John Schuster from Network Appliance. Don Gillies took over the project in the spring of 2000 and enhanced the protocol to allow pipelined ICAP servers and to support all 3 encapsulations of HTTP allowed by HTTP 1.1. Gillies also prototyped the first ICAP client and server for the NetCache series of internet caches in mid-2000 and produced training materials for vendors. The first demonstration ICAP Server was written in Perl and employed the Debian word-replacement filters to rewrite web pages, skipping over the HTML tags, and translate web pages into "swedish chef" or "jive" in real time.
Open source implementations
- ICAP-server.sf.net (Python, multiplatform)
- SquidClamAV.darold.net (SquidClamAV, C-ICAP Plugin For Clam-AV)
- Squid 3.0 (C++, multiplatform)
- Java ICAP Codec (ICAP Codec, Java, multiplatform)
- c-icap (C, multiplatform)
- bitz-server(C++, multiplatform)
- Metascan ICAP Server
- F5 BIG-IP Local Traffic Manager
- Cisco Web Security Appliance
- Blue Coat Systems ProxySG
- CensorNet ICAP Server
- L3WS WebFlow Adapter (commercial version of GreasySpoon)
- M86 Security Secure Web Gateway
- McAfee Web Gateway
- Symantec Protection Engine
- Sophos SAV Dynamic Interface (SAVDI)
- Fortigate v4.0 MR3 What's New
- Trend Micro Interscan Web Security Gateway Virtual Appliance