WebSphere Message Broker Version 8.0.0.5 Betriebssysteme: AIX, HP-Itanium, Linux, Solaris, Windows, z/OS

Sehen Sie sich die Informationen zur aktuellen Produktversion im IBM Integration Bus Version 9.0 an.

MIME-Nachrichten

Eine MIME-Nachricht setzt sich aus Daten und Metadaten zusammen. MIME-Metadaten bestehen aus Headern, die der HTTP-Darstellung entsprechen, und MIME-Begrenzern.

MIME-Header

Jeder Header ist ein durch ein Doppelpunkt getrenntes Name/Wert-Paar in einer eigenen Zeile. Die ASCII-Zeichenfolge <CR><LF> beendet diese Zeile. Eine Folge aus mehreren Headern, ein so genannter Headerblock, wird durch eine Leerzeile beendet: <CR><LF><CR><LF>. Alle Header, die dieser HTTP-Darstellung entsprechen, können in einem MIME-Dokument enthalten sein. Einige gebräuchliche MIME-Header werden unter Standardfelder des MIME-Headers beschrieben.

Content-Type

Der einzige Header, der vorhanden sein muss, ist der Header Content-Type (Inhaltstyp). Dieser Header gibt den Typ der in der Nachricht enthaltenen Daten an. Wenn der Content-Type-Wert mit "multipart" beginnt, handelt es sich um eine mehrteilige MIME-Nachricht. Bei mehrteiligen Nachrichten muss der Header 'Content-Type' auch ein Begrenzungsattribut (boundary) enthalten, das den Text festlegt, der als Begrenzer für die Nachrichtenteile verwendet wird. Jeder MIME-Teil verfügt über ein eigenes Content-Type-Feld, das den Typ der im jeweiligen Teil enthaltenen Daten angibt. Dies kann wiederum den Wert 'multipart' enthalten, d. h., mehrteilige Nachrichten können verschachtelt werden. MIME-Teile mit allen anderen Content-Type-Werten werden wie BLOB-Daten behandelt.

Wenn ein MIME-Dokument über HTTP gesendet wird, steht der Header 'Content-Type' im HTTP-Headerblock statt im Hauptteil der MIME-Nachricht. Aus diesem Grund verwaltet der Broker den Wert des Headers 'Content-Type' als die Eigenschaft 'ContentType' im Ordner Properties (Eigenschaften) der logischen Baumstruktur. Dadurch kann der MIME-Parser den Content-Type-Wert für ein MIME-Dokument, das über HTTP empfangen wird, abrufen. Falls Sie eine neue MIME-Baumstruktur erstellen oder den Content-Type-Wert ändern müssen, legen Sie den Content-Type-Wert über die Eigenschaft 'ContentType' in der MIME-Domäne fest. Wenn Sie den Content-Type-Wert direkt in der MIME-Baumstruktur oder der HTTP-Baumstruktur festlegen, wird der Wert möglicherweise ignoriert oder inkonsistent verwendet. Der folgende ESQL-Code ist ein Beispiel für das Festlegen der Eigenschaft 'ContentType' des Brokers:
SET OutputRoot.Properties.ContentType = 'text/plain';

Parsing

Die MIME-Domäne erzwingt nicht die vollständige MIME-Spezifikation. Deshalb können Sie mit Nachrichten arbeiten, die in anderen Anwendungen möglicherweise unzulässig sind. Beispielsweise besteht der MIME-Parser nicht darauf, dass ein MIME-Version-Header vorhanden ist. Der MIME-Parser erwartet, dass folgende Vorgaben erfüllt werden:
  • Die MIME-Header müssen richtig formatiert sein:
    • Jeder Header ist ein durch einen Doppelpunkt getrenntes Name/Wert-Paar in einer eigenen Zeile, die durch die ASCII-Zeichenfolge <CR><LF> beendet wird.
    • Die Headerzeile muss das Format 7-Bit ASCII haben.
    • Parameter sind durch Semikolons getrennt:
      Content-Type: Multipart/Related; boundary=MIME_Begrenzer; type=text/xml
    • Ein Header kann einen Kommentar in runden Klammern enthalten, z. B.:
      MIME-Version: 1.0 (Generiert von XYZ)
  • Eine Zeile, die mit einem Leerzeichen beginnt, wird als Fortsetzung der vorherigen Zeile behandelt. Auf diese Weise kann ein langer Header auf mehrere Zeilen verteilt werden.
  • Wenn mehrere Header in einem Headerblock denselben Namen haben, werden ihre Werte in einer durch Kommas getrennten Liste verkettet.
  • Es muss ein MIME-Header 'Content-Type' auf der höchsten Ebene verfügbar sein. Bei dem Header muss die Groß-/Kleinschreibung nicht beachtet werden. Beim Transport über HTTP wird jeder Content-Type-Wert im HTTP-Header als Content-Type der höchsten Ebene verwendet. Erfolgt der Transport nicht über HTTP, muss Content-Type im ersten Headerblock der MIME-Nachricht stehen.
  • Der Content-Type-Wert besteht aus einem Medientyp gefolgt von dem Zeichen / und einem Subtyp. Beispiele hierfür sind text/xml und multipart/related. Subtypen werden vom Parser nicht ausgewertet. Auf den Content-Type-Wert können ein oder mehrere Parameter folgen, die durch Semikolons getrennt sind.
  • Wenn eine Nachricht den Medientyp 'multipart' (mehrteilig) hat, muss in einem Begrenzerattribut der Text angegeben sein, der als Begrenzer zwischen den einzelnen MIME-Teilen verwendet wird.
  • Jeder einzelne MIME-Teil kann einen eigenen Content-Type-Header enthalten. Der Teil-Header kann den Medientyp 'multipart' haben, sodass mehrteilige Nachrichten verschachtelt werden können. In diesem Fall muss ein gültiges Begrenzerattribut angegeben werden, dessen Wert sich von jedem zuvor in der Nachricht definierten Wert unterscheiden muss. MIME-Teile mit allen anderen Content-Type-Werten werden wie BLOB-Daten behandelt.
  • Begrenzer für mehrteilige MIME-Nachrichten werden im Format 7-Bit ASCII dargestellt. Der Begrenzer besteht aus einer Zeile, die mit zwei Silbentrennungsstrichen beginnt, denen sich eine Begrenzerzeichenfolge anschließt. Diese Folge darf innerhalb der MIME-Nachricht ausschließlich als Begrenzer vorkommen. Ein MIME-Endbegrenzer besteht aus zwei Silbentrennungsstrichen, denen sich die MIME-Begrenzerzeichenfolge, gefolgt von zwei weiteren Silbentrennungsstrichen, anschließt. Alle Begrenzerzeilen müssen mit der ASCII-Folge <CR><LF> enden. Es folgt ein Beispiel für eine Nachricht mit Begrenzern:
    --MIME_Begrenzer
    Nachrichtendaten
    --MIME_Begrenzer
    Nachrichtendaten
    --MIME_Begrenzer--
    Dabei steht MIME_Begrenzer für die Begrenzerzeichenfolge und Nachrichtendaten für die Nachrichtendaten.
  • Der MIME-Medientyp Nachricht wird nicht unterstützt und führt während der Ausführung zu einem Fehler.
  • Alle Präambeldaten (Text zwischen dem ersten MIME-Headerblock und dem ersten Begrenzer) oder Epilogdaten (Text nach dem letzten Begrenzer) werden in der logischen Baumstruktur als ein Element, das nur aus einem Wert bestehen kann, gespeichert. Präambeldaten und Epilogdaten können nur als das erste bzw. letzte untergeordnete Element eines Teilknotens vorkommen.
  • Der MIME-Parser unterstützt keine Syntaxanalyse auf Anforderung und ignoriert die Eigenschaft Zeitpunkt für Syntaxanalyse. Der Parser überprüft MIME-Nachrichten nicht anhand des Nachrichtenmodells und ignoriert die Eigenschaft Auswerten des WebSphere Message Broker Toolkits.

Sonderfälle vom mehrteiligen MIME-Nachrichten

Der MIME-Parser ist in erster Linie zur Nutzung mit mehrteiligen MIME-Nachrichten gedacht. Der Parser kann aber auch für einige Sonderfälle eingesetzt werden:
  • Mehrteilige MIME-Nachrichten, die aus nur einem Teil bestehen. In der logischen Baumstruktur für den MIME-Teil werden der Inhaltstyp (Content-Type) und sonstige Informationen wie üblich gespeichert, das Datenelement (Data) für den Anhang ist jedoch leer.
  • Einteilige MIME-Nachrichten. Für einteilige MIME-Nachrichten enthält die logische Baumstruktur kein untergeordnetes Teilelement (Parts). Das letzte untergeordnete Element der MIME-Struktur ist das Datenelement (Data). Dieses Element ist das übergeordnete Element des BLOB, das die Nachrichtendaten enthält.
  • MIME-Teile ohne Inhalt.

Sichere MIME-Nachrichten (S/MIME)

S/MIME ist ein Standard zum Senden sicherer E-Mail-Nachrichten. Eine S/MIME-Nachricht besitzt einen übergeordneten Content-Type multipart/signed mit den Parametern protocol und micalg, die den Algorithmus zum Verschlüsseln der Nachricht festlegen. Ein oder mehrere MIME-Teile können codierten Inhalt enthalten. Diese Teile haben Content-Type-Werte wie application/pkcs7-signature und den Content-Transfer-Encoding-Wert base64. Die MIME-Domäne versucht nicht, die Nachricht zu interpretieren oder zu prüfen, ob die Nachricht signiert ist.

Bemerkungen | Marken | Downloads | Bibliothek | Support | Feedback

Copyright IBM Corporation 1999, 2014Copyright IBM Corporation 1999, 2014.

        
        Letzte Aktualisierung:
        
        Letzte Aktualisierung: 2015-02-28 16:20:08


KonzeptthemaKonzeptthema | Version 8.0.0.5 | ac30080_