|ICAP, Internet Content Adaptation Protocol|
|Protocol type:||Application layer protocol.|
The ICAP protocol is aimed at providing simple object-based content vectoring for HTTP services. ICAP is, in essence, a lightweight protocol for executing a "remote procedure call" on HTTP messages. It allows ICAP clients to pass HTTP messages to ICAP servers for some sort of transformation or other processing ("adaptation"). The server executes its transformation service on messages and sends back responses to the client, usually with modified messages. Typically, the adapted messages are either HTTP requests or HTTP responses.
ICAP is a request/response protocol similar in semantics and usage to HTTP/1.1. Despite the similarity, ICAP is not HTTP, nor is it an application protocol that runs over HTTP. This means, for example, that ICAP messages can not be forwarded by HTTP surrogates.
|MAC header||IP header||TCP header||ICAP message|
|OPTIONS||Learn about configuration.||RFC 3507|
|REQMOD||Request modification.||RFC 3507|
|RESPMOD||Response modification.||RFC 3507|
ICAP status codes:
(1yz) Informational codes:
|100||Continue after ICAP preview.|
(2yz) Success codes:
|204||No modifications needed.|
(4yz) Client error codes:
|404||ICAP Service not found.|
|405||Method not allowed for service (e.g., RESPMOD requested for service that supports only REQMOD).|
|408||Request timeout. ICAP server gave up waiting for a request from an ICAP client.|
(5yz) Server error codes:
|500||Server error. Error on the ICAP server, such as "out of disk space".|
|501||Method not implemented. This response is illegal for an OPTIONS request since implementation of OPTIONS is mandatory.|
|502||Bad Gateway. This is an ICAP proxy and proxying produced an error.|
|503||Service overloaded. The ICAP server has exceeded a maximum connection limit associated with this service; the ICAP client should not exceed this limit in the future.|
|505||ICAP version not supported by server.|
[RFC 3507] Internet Content Adaptation Protocol (ICAP).