Wie läuft der Dialog mit einem Virenscanner via ICAP ab, wenn ein Preview in mehreren Chunks gesendet wird, und welche Daten werden an den Scanner geschickt?

Antwort

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-Anfrage mit Preview-Header:** Der ICAP-Client (z. B. ein Proxy) sendet eine REQMOD- oder RESPMOD-Anfrage an den ICAP-Server (Virenscanner). Im Header wird die Größe des Previews angegeben, z. B. `Preview: 1024`. **Beispiel für die an den Scanner gesendeten Daten:** ``` REQMOD icap://virenscanner.example.net/scan ICAP/1.0 Host: virenscanner.example.net Allow: 204 Preview: 1024 Encapsulated: req-hdr=0, req-body=... [weitere Header] [HTTP-Anfrage-Header] [leere Zeile] [Body beginnt, falls vorhanden] ``` **2. Senden des Preview-Chunks:** Der Client sendet die ersten N Bytes (z. B. 1024) des Bodys als Preview. Die Daten werden im Chunked-Encoding übertragen. ``` 400 [1024 Bytes Preview-Daten] 0; ieof ``` - `400` ist die Hexadezimalzahl für 1024 (Größe des Chunks). - `0; ieof` signalisiert das Ende des Previews, aber nicht zwingend das Ende des gesamten Bodys. **3. Antwort des ICAP-Servers:** Der Server kann jetzt entscheiden: - **204 No Modification Needed**: Keine weitere Datenübertragung nötig. - **100 Continue**: Der Server benötigt mehr Daten. **Beispiel für 100 Continue:** ``` ICAP/1.0 100 Continue ``` **4. Senden weiterer Chunks:** Der Client sendet die nächsten Chunks des Bodys, jeweils im Chunked-Encoding-Format: ``` 400 [weitere 1024 Bytes] 400 [weitere 1024 Bytes] ... 0 ``` - Jeder Chunk beginnt mit der Größe in Hex, gefolgt von den Daten. - Das letzte Chunk ist `0`, was das Ende des Bodys signalisiert. **Zusammengefasst:** - **Header mit Preview-Angabe** - **Preview-Chunk (z. B. 1024 Bytes)** - **Warten auf 100 Continue** - **Weitere Chunks senden, bis der Body komplett ist** **Beispiel für die gesendeten Daten (vereinfacht):** ``` REQMOD icap://virenscanner.example.net/scan ICAP/1.0 Host: virenscanner.example.net Preview: 1024 Encapsulated: req-hdr=0, req-body=... [HTTP-Header] [leere Zeile] 400 [1024 Bytes Preview] 0; ieof [Warten auf 100 Continue] 400 [weitere 1024 Bytes] 400 [weitere 1024 Bytes] 0 ``` **Weitere Informationen:** - [ICAP RFC 3507](https://datatracker.ietf.org/doc/html/rfc3507) - [Wikipedia: ICAP](https://de.wikipedia.org/wiki/Internet_Content_Adaptation_Protocol) Die genaue Struktur kann je nach Implementierung und verwendetem ICAP-Client leicht variieren.

Neue Frage stellen

Verwandte Fragen

Wie ist der ICAP-Dialog mit einem Virenscanner, wenn die Preview-Größe größer als die Chunk-Größe ist, und welche Daten werden dabei an den Scanner gesendet?

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... [mehr]

Wie ist der HTTP-Teil eines ICAP-Requests an einen Virenscanner aufgebaut, um binäre Daten direkt zur Überprüfung zu senden?

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]

Wie erkenne ich bei einem Virenscan über ICAP anhand von 'ICAP/1.0 204' oder 'ICAP/1.0 200', ob die Daten virenbehaftet sind?

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]