Như được định nghĩa trong RFC 1341 :
Trong ký hiệu BNF mở rộng của RFC 822, giá trị trường tiêu đề Kiểu nội dung được xác định như sau:
Kiểu nội dung: = loại "/" kiểu con * [";" tham số]
loại: = "ứng dụng" / "âm thanh" / "hình ảnh" / "tin nhắn" / "nhiều phần" / "văn bản" / "video" / x-token
x-token: = <Hai ký tự "X-" theo sau, không có khoảng trắng can thiệp, bởi bất kỳ mã thông báo nào>
tiểu loại: = mã thông báo
tham số: = thuộc tính "=" giá trị
thuộc tính: = mã thông báo
giá trị: = mã thông báo / chuỗi trích dẫn
mã thông báo: = 1 *
tspecials: = "(" / ")" / "<" / ">" / "@"; Phải ở / "," / ";" / ":" / "\" / <">; quote-chuỗi, /" / "/" ["/"] "/"? "/". ";
Và một danh sách các loại MIME đã biết có thể theo nó (hoặc, như Joe nhận xét, nguồn IANA ).
Như bạn có thể thấy danh sách này quá lớn để bạn xác nhận đối với tất cả chúng. Những gì bạn có thể làm là xác nhận theo định dạng chung và type
thuộc tính để đảm bảo rằng đó là chính xác (tập hợp các tùy chọn là nhỏ) và chỉ giả sử rằng những gì tuân theo nó là chính xác (và tất nhiên bắt bất kỳ trường hợp ngoại lệ nào bạn có thể gặp phải khi đặt nó để sử dụng thực tế).
Cũng lưu ý nhận xét trên:
Nếu một loại chính khác được sử dụng cho bất kỳ lý do nào, thì nó phải được đặt tên bắt đầu bằng "X-" để chỉ trạng thái không chuẩn của nó và để tránh bất kỳ xung đột tiềm năng nào với tên chính thức trong tương lai.
Bạn sẽ nhận thấy rằng rất nhiều yêu cầu / phản hồi HTTP bao gồm một X-
tiêu đề thuộc loại tự xác định, hãy ghi nhớ điều này khi xác thực các loại.