Wie in RFC 1341 definiert :
In der erweiterten BNF-Notation von RFC 822 ist ein Header-Feldwert für den Inhaltstyp wie folgt definiert:
Inhaltstyp: = Typ "/" Subtyp * [";" Parameter]
Typ: = "Anwendung" / "Audio" / "Bild" / "Nachricht" / "mehrteilig" / "Text" / "Video" / x-Token
x-token: = <Auf die beiden Zeichen "X-" folgte ohne Leerzeichen ein Token>
Subtyp: = Token
Parameter: = Attribut "=" Wert
Attribut: = Token
Wert: = Token / Anführungszeichenfolge
Token: = 1 *
tspecials: = "(" / ")" / "<" / ">" / "@"; Muss in / "," / ";" / ":" / "\" / <">; Anführungszeichenfolge, /" / "/" ["/"] "/"? "/". "; Verwendung innerhalb von /" = "; Parameterwerten
Und eine Liste bekannter MIME-Typen , die darauf folgen können (oder, wie Joe bemerkt, die IANA-Quelle ).
Wie Sie sehen, ist die Liste viel zu groß, als dass Sie sie gegen alle validieren könnten. Was Sie tun können, ist anhand des allgemeinen Formats und des type
Attributs zu validieren , um sicherzustellen, dass es korrekt ist (der Satz von Optionen ist klein), und einfach davon auszugehen, dass das Folgende korrekt ist (und natürlich alle Ausnahmen zu erfassen, die beim Einfügen auftreten können zur tatsächlichen Verwendung).
Beachten Sie auch den obigen Kommentar:
Wenn ein anderer Primärtyp aus irgendeinem Grund 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-Anforderungen / -Antworten einen X-
selbst definierten Header enthalten. Beachten Sie dies bei der Überprüfung der Typen.