Zgodnie z definicją w RFC 1341 :
W rozszerzonej notacji BNF RFC 822 wartość pola nagłówka Content-Type jest zdefiniowana w następujący sposób:
Content-Type: = type "/" podtyp * [";" parametr]
type: = „application” / „audio” / „image” / „message” / „multipart” / „text” / „video” / x-token
x-token: = <Dwa znaki „X-”, po których nie występują żadne spacje, żadne znaki>
podtyp: = token
parametr: = wartość atrybutu „=”
atrybut: = token
wartość: = token / quoted-string
token: = 1 *
tspecials: = "(" / ")" / "<" / ">" / "@"; Musi być w / ”,„ / ”;” / ":" / "\" / <">; ciąg cudzysłowu, /" / "/" ["/"] "/"? "/". "; do użycia w / / = =; wartości parametrów
I lista znanych typów MIME, które mogą za nim podążać (lub, jak zauważa Joe, źródło IANA ).
Jak widać, lista jest zbyt duża, aby można ją było zweryfikować w stosunku do wszystkich. Możesz sprawdzić poprawność względem ogólnego formatu i type
atrybutu, aby upewnić się, że jest poprawny (zestaw opcji jest mały) i po prostu założyć, że to, co następuje, jest poprawne (i oczywiście wychwyć wszelkie wyjątki, które możesz napotkać, gdy go umieścisz do faktycznego użycia).
Zwróć także uwagę na powyższy komentarz:
Jeśli z jakiegokolwiek powodu ma być używany inny typ podstawowy, należy nadać mu nazwę rozpoczynającą się od „X-”, aby wskazać jego niestandardowy status i uniknąć potencjalnego konfliktu z przyszłą oficjalną nazwą.
Zauważysz, że wiele żądań / odpowiedzi HTTP zawiera X-
pewnego rodzaju nagłówki, które są samodzielnie zdefiniowane, pamiętaj o tym podczas sprawdzania poprawności typów.