Як визначено в RFC 1341 :
У розширеному позначенні BNF RFC 822 значення поля заголовка Content-Type визначається наступним чином:
Тип вмісту: = тип "/" підтип * [";" параметр]
type: = "application" / "audio" / "image" / "message" / "multipart" / "text" / "video" / x-token
x-token: = <Два символи "X-" слідували, не маючи пробілу, жодним знаком>
підтип: = маркер
параметр: = атрибут "=" значення
атрибут: = маркер
значення: = маркер / котирування-рядок
маркер: = 1 *
tspecials: = "(" / ")" / "<" / ">" / "@"; Повинно бути в / "," / ";" / ":" / "\" / <">; quote-string, /" / "/" ["/"] "/"? "/". "; використовувати в межах /" = "; значення параметрів
І список відомих типів MIME, які можуть слідувати за ним (або, як зауважує Джо, джерело IANA ).
Як ви бачите, список занадто великий для вас, щоб підтвердити його. Що ви можете зробити, це підтвердити загальний формат та type
атрибут, щоб переконатися, що це правильно (набір параметрів невеликий), і просто припустити, що те, що випливає, є правильним (і, звичайно, вловлювати будь-які винятки, з якими ви можете зіткнутися, коли ви поставите його до фактичного використання).
Також зверніть увагу на коментар вище:
Якщо з будь-якої причини потрібно використовувати інший основний тип, йому слід надати ім’я, починаючи з "X-", щоб вказати на його нестандартний статус та уникнути потенційного конфлікту з майбутнім офіційним іменем.
Ви помітите, що багато HTTP запитів / відповідей містять певний X-
заголовок, який визначається самостійно, майте це на увазі під час перевірки типів.