Title: ICAP: the Internet Content Adaptation Protocol
1ICAP theInternet ContentAdaptation Protocol
- ICAP Forum Meeting
- February 14, 2000
2what is icap?
- ICAP lets clients send HTTP messages to servers
for some sort of adaptation - In essence, an RPC mechanism (Remote Procedure
Call) for HTTP messages - An adapted message might be a request
- Modify request method, URL being requested, etc.
- ...or, it might be a reply
- Change any aspect of delivered content
3why icap?distribute load, orintegrate 3rd party
components
Specialized Servers for Compute-Intensive Operatio
ns
3rd-Party Devices
Transcoder Content Filter
Virus Checker Translator
Web Server or Proxy
4why icap?make local content smarter
Congested, Slow, Distant, and/or Expensive Link
Content distribution network, or (transparent)
proxy
Clients
Local sources of content Better for everyone
(client, network, server)
5what icap isnt(for now)
- A way to specify adaptation policy
- A configuration protocol
- A protocol that establishes trust between
previously unrelated parties - In other wordsICAP defines the how, not who,
when or why
6icap general design
- Simple, simple, simple CGI should be able to
turn a web server to an ICAP server - Based on HTTP (special headers)
- Three modes
- Modify a request
- Satisfy a request (like any other proxy)
- Modify a response
7request modification(typical)
5
6
4
1
Proxy Cache (ICAP Client)
Origin Server
2
3
ICAP Server
ICAP server modifies a request modified request
continues on its merry way
8request modification
- The request is passed to the ICAP server (almost)
unmodified just like a proxy would - Whatever method was used by the user is used by
the ICAP client as well - The ICAP server sends back a modified request,
encapsulated in response headers - Body, if any (e.g. POST), may also be modified
9request satisfaction(typical)
6
1
Proxy Cache (ICAP Client)
2
5
Origin Server
4
ICAP Server
3
ICAP server satisfies a request just like a
proxy origin server MAY be contacted by ICAP
server (or not)
10response modification(typical)
3
6
2
1
Proxy Cache (ICAP Client)
Origin Server
4
5
ICAP Server
ICAP server modifies a response from an origin
server might be once, as the object is cached,
or once per client served
11response modification
- ICAP client always uses POST to send body
- Encapsulated in POST headers may also be
- Headers used by user to request the object
- Headers used by origin server in its reply
- ICAP server replies with modified content
12infinite variations
- These examples were illustrative, not
comprehensive -- this generic interface enables
many different kinds of apps! - Edge content sources can pass pages to ad servers
- Expensive operations can be offloaded
- Content filters can respond either with an
unmodified request or HTML (Get Back to Work!)
13future work
- Discussion should be split in two parts
- Bug fixes How is the current standard broken?
- Standard is limited in scope compared to policy,
but a critical first step - Wish list What do we want for the future?
- Harder policy questions go here
- Implementation experience will inform this
discussion