Ein Dialog mit einem Virenscanner via ICAP (Internet Content Adaptation Protocol), bei dem ein Preview in mehreren Chunks gesendet wird, läuft typischerweise wie folgt ab: **1. ICAP-REQMOD-Anfra... [mehr]
Ein Dialog mit einem Virenscanner via ICAP (Internet Content Adaptation Protocol) läuft typischerweise so ab, dass ein ICAP-Client (z. B. ein Proxy) eine Anfrage an einen ICAP-Server (z. B. einen Virenscanner) sendet, um Inhalte prüfen oder modifizieren zu lassen. Dabei wird der zu prüfende Inhalt oft in Chunks (Teilstücken) übertragen. Die "Preview"-Funktion von ICAP erlaubt es, dem Server zunächst nur einen Teil der Daten zu schicken, damit dieser entscheiden kann, ob er den Rest benötigt. **Szenario:** Die Preview-Größe (z. B. 1024 Bytes) ist größer als die Chunk-Größe (z. B. 512 Bytes). Das bedeutet, dass der Client mehrere Chunks senden muss, um die gewünschte Preview-Größe zu erreichen. **Beispielhafter Ablauf und gesendete Daten:** 1. **OPTIONS-Anfrage (optional, zur Feature-Erkennung):** ``` OPTIONS icap://icap-server.example.com/scan HTTP/1.1 Host: icap-server.example.com ``` 2. **REQMOD/RESPMOD-Anfrage mit Preview:** ``` REQMOD icap://icap-server.example.com/scan ICAP/1.0 Host: icap-server.example.com Allow: 204 Preview: 1024 Encapsulated: req-hdr=0, req-body=... ``` 3. **HTTP-Header (z. B. bei REQMOD):** ``` GET /file.exe HTTP/1.1 Host: www.example.com ... ``` 4. **Body mit Chunks (ICAP verwendet HTTP/1.1 chunked encoding):** - **Erster Chunk (512 Bytes):** ``` 200 <512 Bytes Daten> ``` - **Zweiter Chunk (512 Bytes):** ``` 200 <weitere 512 Bytes Daten> ``` - **Preview-Ende (null chunk mit "ieof" für "End of Preview"):** ``` 0; ieof ``` **Gesamte gesendete Daten (vereinfacht):** ``` REQMOD icap://icap-server.example.com/scan ICAP/1.0 Host: icap-server.example.com Allow: 204 Preview: 1024 Encapsulated: req-hdr=0, req-body=... GET /file.exe HTTP/1.1 Host: www.example.com ... 200 <512 Bytes Daten> 200 <weitere 512 Bytes Daten> 0; ieof ``` **Erklärung:** - Die Preview-Größe ist 1024 Bytes, aber die Chunks sind nur 512 Bytes groß. - Der Client sendet also zwei Chunks à 512 Bytes, um die Preview zu erfüllen. - Nach dem zweiten Chunk wird mit `0; ieof` signalisiert, dass das Ende der Preview erreicht ist. - Der Server entscheidet nun, ob er den Rest der Daten benötigt (204 oder 100 Continue). **Weitere Infos:** - [ICAP RFC 3507](https://datatracker.ietf.org/doc/html/rfc3507) - [Beispiel für ICAP-Dialoge](https://www.openicaps.org/icap/icap_faq.html) **Zusammenfassung:** Wenn die Preview-Größe größer als die Chunk-Größe ist, sendet der Client mehrere Chunks, bis die Preview-Größe erreicht ist, und signalisiert das Ende der Preview mit `0; ieof`.
Ein Dialog mit einem Virenscanner via ICAP (Internet Content Adaptation Protocol), bei dem ein Preview in mehreren Chunks gesendet wird, läuft typischerweise wie folgt ab: **1. ICAP-REQMOD-Anfra... [mehr]
Um binäre Daten (z. B. eine Datei) direkt an einen Virenscanner über das ICAP-Protokoll zu senden, wird typischerweise der ICAP-Request mit einem eingebetteten HTTP-Request oder HTTP-Respons... [mehr]
Beim Einsatz von ICAP (Internet Content Adaptation Protocol) zur Virenprüfung gibt der ICAP-Server nach der Analyse einer Datei eine Antwort an den Client zurück. Die wichtigsten Statuscodes... [mehr]