Wie in RFC 1341 definiert ist:
In der erweiterten BNF-Notation von RFC 822 wird ein Content-Type-Headerfeldwert wie folgt definiert:
Content-Type := Typ "/" Subtyp *[";" Parameter]
Typ := "application" / "audio" / "image" / "message" / "multipart" / "text" / "video" / x-token
x-token :=
Subtyp := Token
Parameter := Attribut "=" Wert
Attribut := Token
Wert := Token / quoted-string
Token := 1*
tspecials := "(" / ")" / "<" / ">" / "@" ; Muss sein in / "," / ";" / ":" / "" / <"> ; quoted-string, / "/" / "[" / "]" / "?" / "." ; verwendbar innerhalb / "=" ; von Parameterwerten
Und eine Liste bekannter MIME-Typen, die darauf folgen können (oder, wie Joe bemerkt, die IANA-Quelle).
Wie Sie sehen können, ist die Liste zu groß, um sie gegen alle zu validieren. Was Sie tun können, ist gegen das allgemeine Format und das Typ
-Attribut validieren, um sicherzustellen, dass es korrekt ist (die Auswahlmöglichkeiten sind gering) und einfach annehmen, dass das, was darauf folgt, korrekt ist (und natürlich mögliche Ausnahmen erfassen, auf die Sie bei der tatsächlichen Verwendung stoßen könnten).
Beachten Sie auch den vorstehenden Kommentar:
Wenn aus irgendeinem Grund ein anderer primärer Typ verwendet werden soll, muss ihm ein Name gegeben werden, der mit "X-" beginnt, um seinen nicht standardmäßigen Status anzuzeigen und mögliche Konflikte mit einem zukünftigen offiziellen Namen zu vermeiden.
Sie werden feststellen, dass viele HTTP-Anfragen/Antworten eine Art X-
-Header enthalten, die selbst definiert sind. Behalten Sie dies im Hinterkopf, wenn Sie die Typen validieren.