Internet Content Adaptation Protocol
Encyclopedia
The Internet Content Adaptation Protocol (ICAP) is a lightweight HTTP
Hypertext Transfer Protocol
The Hypertext Transfer Protocol is a networking protocol for distributed, collaborative, hypermedia information systems. HTTP is the foundation of data communication for the World Wide Web....

-like protocol specified in RFC 3507 which is used to extend transparent proxy server
Proxy server
In computer networks, a proxy server is a server that acts as an intermediary for requests from clients seeking resources from other servers. A client connects to the proxy server, requesting some service, such as a file, connection, web page, or other resource available from a different server...

s, thereby freeing up resources and standardizing the way in which new features are implemented. ICAP is generally used to implement virus scanning
Antivirus software
Antivirus or anti-virus software is used to prevent, detect, and remove malware, including but not limited to computer viruses, computer worm, trojan horses, spyware and adware...

, and content filters
Content filtering
Content filtering is the technique whereby content is blocked or allowed based on analysis of its content, rather than its source or other criteria. It is most widely used on the internet to filter email and web access.- Content filtering of email :...

 in transparent HTTP proxy caches. Content Adaptation
Content Adaptation
Content adaptation is the action of transforming content to adapt to device capabilities. Content adaptation is usually related to mobile devices that require special handling because of their limited computational power, small screen size and constrained keyboard functionality.Content adaptation...

 refers to performing the particular value added service (content manipulation) for the associated client request/response.

ICAP concentrates on leveraging edge-based devices (proxies
Proxy server
In computer networks, a proxy server is a server that acts as an intermediary for requests from clients seeking resources from other servers. A client connects to the proxy server, requesting some service, such as a file, connection, web page, or other resource available from a different server...

 and cache
Cache
In computer engineering, a cache is a component that transparently stores data so that future requests for that data can be served faster. The data that is stored within a cache might be values that have been computed earlier or duplicates of original values that are stored elsewhere...

s) to help deliver value-added service
Value-added service
A value-added service is popular as a telecommunications industry term for non-core services, or in short, all services beyond standard voice calls and fax transmissions. However, it can be used in any service industry, for services available at little or no cost, to promote their primary business...

s. At the core of this process is a cache
Cache
In computer engineering, a cache is a component that transparently stores data so that future requests for that data can be served faster. The data that is stored within a cache might be values that have been computed earlier or duplicates of original values that are stored elsewhere...

 that will proxy
Proxy server
In computer networks, a proxy server is a server that acts as an intermediary for requests from clients seeking resources from other servers. A client connects to the proxy server, requesting some service, such as a file, connection, web page, or other resource available from a different server...

 all client
Client (computing)
A client is an application or system that accesses a service made available by a server. The server is often on another computer system, in which case the client accesses the service by way of a network....

 transactions and will process
Process (computing)
In computing, a process is an instance of a computer program that is being executed. It contains the program code and its current activity. Depending on the operating system , a process may be made up of multiple threads of execution that execute instructions concurrently.A computer program is a...

 them through ICAP Web server
Web server
Web server can refer to either the hardware or the software that helps to deliver content that can be accessed through the Internet....

s. These ICAP servers are focused on a specific function, for example, ad insertion, virus
Computer virus
A computer virus is a computer program that can replicate itself and spread from one computer to another. The term "virus" is also commonly but erroneously used to refer to other types of malware, including but not limited to adware and spyware programs that do not have the reproductive ability...

 scanning, content translation, language translation, or content filtering
Content filtering
Content filtering is the technique whereby content is blocked or allowed based on analysis of its content, rather than its source or other criteria. It is most widely used on the internet to filter email and web access.- Content filtering of email :...

. 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.

History

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
NetCache
NetCache is a former web cache software product which was owned and developed by NetApp between 1997 and 2006, and a hardware product family incorporating the NetCache software.-History:...

 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
    Python (programming language)
    Python is a general-purpose, high-level programming language whose design philosophy emphasizes code readability. Python claims to "[combine] remarkable power with very clear syntax", and its standard library is large and comprehensive...

    , multiplatform)
  • Squid 3.0 (C
    C (programming language)
    C is a general-purpose computer programming language developed between 1969 and 1973 by Dennis Ritchie at the Bell Telephone Laboratories for use with the Unix operating system....

    , multiplatform)
  • GreasySpoon (ICAP server, Java
    Java (programming language)
    Java is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java platform. The language derives much of its syntax from C and C++ but has a simpler object model and fewer low-level facilities...

    , multiplatform)
  • Java ICAP Codec (ICAP Codec, Java
    Java (programming language)
    Java is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java platform. The language derives much of its syntax from C and C++ but has a simpler object model and fewer low-level facilities...

    , multiplatform)
  • c-icap (C
    C (programming language)
    C is a general-purpose computer programming language developed between 1969 and 1973 by Dennis Ritchie at the Bell Telephone Laboratories for use with the Unix operating system....

    , multiplatform)

Commercial implementations


External links

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK