Ein ICAP-Request im RESPmod-Modus (Response Modification) wird verwendet, um z. B. HTTP-Antworten (inklusive deren Body) an einen ICAP-Server zu senden, etwa zur Virenprüfung. Die Daten werden da... [mehr]
Ein ICAP-Request im RESPMOD-Modus (Response Modification) dient dazu, HTTP-Antworten (z.B. von einem Proxy) an einen ICAP-Server zu senden, etwa zur Virenprüfung. Das binäre Byte-Array (z.B. ein Download) wird dabei als HTTP-Body im Encapsulated-Teil übertragen. Die Länge des Bodys ist durch Chunked-Encoding oder Content-Length geregelt. **Wichtige Request-Elemente:** - **Request-Line:** `RESPMOD icap://icap-server/virusscan ICAP/1.0` - **Header:** z.B. `Host`, `Encapsulated`, `Allow`, `Preview` - **Encapsulated:** Gibt die Offsets der eingebetteten HTTP-Nachrichten an (z.B. `res-hdr=0, res-body=...`) - **HTTP-Response-Header:** Die Original-HTTP-Antwort (z.B. `HTTP/1.1 200 OK`) - **HTTP-Body:** Das binäre Byte-Array, meist chunked übertragen --- ### Beispiel 1: ICAP-RESPMOD mit vollständigem Body (Content-Length bekannt) ``` RESPMOD icap://icap-server/virusscan ICAP/1.0 Host: icap-server Encapsulated: res-hdr=0, res-body=137 Allow: 204 Preview: 0 HTTP/1.1 200 OK Content-Type: application/octet-stream Content-Length: 1024 <1024 Bytes binärer Datenstrom> ``` **Erläuterung:** - `Encapsulated` gibt an, dass die HTTP-Response-Header bei Offset 0 beginnen, der Body bei Byte 137. - Der Body ist 1024 Bytes lang. --- ### Beispiel 2: ICAP-RESPMOD mit Chunked-Encoding (unbekannte Länge) ``` RESPMOD icap://icap-server/virusscan ICAP/1.0 Host: icap-server Encapsulated: res-hdr=0, res-body=137 Allow: 204 Preview: 0 HTTP/1.1 200 OK Content-Type: application/octet-stream Transfer-Encoding: chunked 4 abcd 6 123456 0 ``` **Erläuterung:** - Body wird in Chunks übertragen, Länge ist nicht im Voraus bekannt. - `Encapsulated` wie oben. --- ### Beispiel 3: ICAP-RESPMOD mit Preview (Teilvorschau) ``` RESPMOD icap://icap-server/virusscan ICAP/1.0 Host: icap-server Encapsulated: res-hdr=0, res-body=137 Allow: 204 Preview: 128 HTTP/1.1 200 OK Content-Type: application/octet-stream Content-Length: 1024 <128 Bytes Preview-Daten> ``` **Erläuterung:** - `Preview: 128` fordert, dass der Server nach 128 Bytes entscheidet, ob er mehr Daten braucht. - Nach dem Preview kann ein `100 Continue` oder ein `204 No Content` folgen. --- ### Beispiel 4: ICAP-RESPMOD mit nur Header (z.B. HEAD-Request) ``` RESPMOD icap://icap-server/virusscan ICAP/1.0 Host: icap-server Encapsulated: res-hdr=0 Allow: 204 Preview: 0 HTTP/1.1 200 OK Content-Type: application/octet-stream Content-Length: 0 ``` **Erläuterung:** - Kein Body, nur Header werden übertragen. - `Encapsulated` enthält nur `res-hdr`. --- **Encapsulated-Header:** Der `Encapsulated`-Header ist entscheidend, da er die Offsets der eingebetteten HTTP-Header und -Bodys angibt. Beispiel: `Encapsulated: res-hdr=0, res-body=137` Das bedeutet: - Die HTTP-Response-Header starten bei Byte 0 nach den ICAP-Headern. - Der Body beginnt bei Byte 137. **Weitere Infos:** - [ICAP RFC 3507](https://datatracker.ietf.org/doc/html/rfc3507) - [ICAP-Server Beispiel: C-ICAP](http://c-icap.sourceforge.net/) **Zusammenfassung:** Ein ICAP-RESPMOD-Request kapselt HTTP-Antworten (Header + Body) ein, wobei der Body (z.B. ein binäres Byte-Array) per Content-Length oder Chunked-Encoding übertragen wird. Der `Encapsulated`-Header gibt
Ein ICAP-Request im RESPmod-Modus (Response Modification) wird verwendet, um z. B. HTTP-Antworten (inklusive deren Body) an einen ICAP-Server zu senden, etwa zur Virenprüfung. Die Daten werden da... [mehr]
Ein ICAP-Request im `RESPMOD`-Modus dient dazu, Inhalte (z. B. HTTP-Antworten) an einen ICAP-Server zu senden, etwa zur Virenprüfung. Das Byte-Array, das geprüft werden soll, wird dabei als... [mehr]
Ein klassisches „Ping“ im Sinne eines ICMP-Pings gibt es im ICAP-Protokoll nicht. ICAP (Internet Content Adaptation Protocol) ist ein Protokoll, das hauptsächlich dazu dient, HTTP-Anf... [mehr]
Für die Kommunikation mit Virenscannern via ICAP (Internet Content Adaptation Protocol) wird in der Praxis überwiegend die **RESPMOD**-Methode verwendet. Das liegt daran, dass Virenscanner i... [mehr]
Der **ICAP Allow Header** (`Allow`) gibt an, welche HTTP-Methoden ein ICAP-Server für eine bestimmte Ressource unterstützt. Er ist analog zum HTTP-`Allow`-Header und wird in ICAP-Antworten v... [mehr]