Die **Query** in einer ICAP-URI ist der optionale Teil nach dem Fragezeichen (`?`). Sie funktioniert ähnlich wie bei HTTP-URIs: Sie überträgt zusätzliche Parameter oder Information... [mehr]
Ein ICAP-Request im RESPMOD-Modus (Response Modification) wird verwendet, um z. B. einen HTTP-Response (etwa eine heruntergeladene Datei) an einen ICAP-Server zu senden, der diesen Inhalt z. B. auf Viren prüft. Das binäre Byte-Array (z. B. ein Dateiausschnitt) wird dabei als HTTP-Body im encapsulierten HTTP-Response übertragen. **Aufbau eines ICAP-RESMOD-Requests mit binärem Body:** 1. **ICAP-Request-Line:** Gibt Methode (hier RESPMOD), URI des ICAP-Servers und Protokollversion an. 2. **ICAP-Header:** Enthält Metadaten wie Host, Encapsulated, Preview, Allow, etc. 3. **Encapsulated HTTP-Response:** Der zu prüfende HTTP-Response (Header + Body). 4. **Body:** Der eigentliche binäre Inhalt (z. B. Datei), als Chunked Encoding. **Beispielhafte ICAP-Request-Elemente:** - `REQMOD` oder `RESPMOD`: Modus (hier RESPMOD) - `Host`: ICAP-Server - `Encapsulated`: Gibt die Offsets der eingebetteten HTTP-Nachrichten an - `Preview`: Optional, gibt an, wie viele Bytes als Vorschau gesendet werden - `Allow`: Gibt unterstützte Features an (z. B. 204) **Beispiel 1: 4-Byte-Array** ```http RESPMOD icap://icap.example.com/virus_scan ICAP/1.0 Host: icap.example.com Encapsulated: res-hdr=0, res-body=137 Allow: 204 HTTP/1.1 200 OK Content-Type: application/octet-stream Content-Length: 4 4 DEADBEEF 0 ``` **Beispiel 2: 8-Byte-Array** ```http RESPMOD icap://icap.example.com/virus_scan ICAP/1.0 Host: icap.example.com Encapsulated: res-hdr=0, res-body=137 Allow: 204 HTTP/1.1 200 OK Content-Type: application/octet-stream Content-Length: 8 8 CAFEBABEDEADBEEF 0 ``` **Beispiel 3: 16-Byte-Array** ```http RESPMOD icap://icap.example.com/virus_scan ICAP/1.0 Host: icap.example.com Encapsulated: res-hdr=0, res-body=137 Allow: 204 HTTP/1.1 200 OK Content-Type: application/octet-stream Content-Length: 16 10 00112233445566778899AABBCCDDEEFF 0 ``` **Beispiel 4: 30-Byte-Array** ```http RESPMOD icap://icap.example.com/virus_scan ICAP/1.0 Host: icap.example.com Encapsulated: res-hdr=0, res-body=137 Allow: 204 HTTP/1.1 200 OK Content-Type: application/octet-stream Content-Length: 30 1E 000102030405060708090A0B0C0D0E0F10111213141516171819 0 ``` **Erläuterung der Request-Elemente:** - **RESPMOD icap://icap.example.com/virus_scan ICAP/1.0** → ICAP-Request-Line: Modus, URI, Protokollversion - **Host: icap.example.com** → Ziel-ICAP-Server - **Encapsulated: res-hdr=0, res-body=137** → Gibt an, wo im Request die HTTP-Response-Header und der Body beginnen (Offset in Bytes) - **Allow: 204** → Unterstützt 204-No-Modification-Needed-Responses - **HTTP/1.1 200 OK ...** → Eingebetteter HTTP-Response-Header (kann auch andere Header enthalten) - **Content-Type, Content-Length** → Typ und Länge des zu prüfenden Inhalts - **Chunked Encoding (z. B. 4, 8, 10, 1E)** → Hexadezimale Angabe der Chunk-Größe (z. B. 4 Bytes = "4", 30 Bytes = "1E") - **Binärdaten (z. B. DEADBEEF)** → Der eigentliche zu prüfende Inhalt, hexadezimal
Die **Query** in einer ICAP-URI ist der optionale Teil nach dem Fragezeichen (`?`). Sie funktioniert ähnlich wie bei HTTP-URIs: Sie überträgt zusätzliche Parameter oder Information... [mehr]
Hier ist eine tabellarische Übersicht der wichtigsten ICAP-Header für die Methoden **OPTIONS**, **REQMOD** und **RESPMOD** – jeweils unterteilt nach Request und Response. Erforderliche... [mehr]
Hier ist eine tabellarische Übersicht der wichtigsten ICAP-Header, die gemäß [RFC 3507](https://datatracker.ietf.org/doc/html/rfc3507) in den jeweiligen ICAP-Methoden (OPTIONS, REQMOD,... [mehr]
Im ICAP-Protokoll (Internet Content Adaptation Protocol, [RFC 3507](https://datatracker.ietf.org/doc/html/rfc3507)) gibt es drei Hauptmethoden: **REQMOD**, **RESPMOD** und **OPTIONS**. Jede Methode ve... [mehr]
ICAP (Internet Content Adaptation Protocol) wird genutzt, um HTTP-Anfragen und -Antworten durch externe Server (z. B. Virenscanner, Content-Filter) zu modifizieren. Die beiden Hauptmodi sind: - **REQ... [mehr]