3.3.1 RFC 2045: Định dạng Internet Message Bodies
3.3.1.4 Content-Type Header Fields
Mục đích của Content-Type Header Fields là để mô tả dữ liệu chứa trong Body mà người dùng nhận được để có thể chọn một chương trình hoặc cơ chế thích hợp để
trình bày các dữ liệu cho người dùng, hoặc xử lý dữ liệu một cách thích hợp. Giá trị trong lĩnh vực này được gọi là một “media type”.
Các Content-Type header Fields xác định tính chất của dữ liệu trong Body của một thực thể bằng cách cho Media type và định danh subtype. Cung cấp thông tin phụ trợ có thể sẽ được yêu cầu cho các Media-type nào đó. Sau khi loại phương tiện truyền thông và những subtype, phần còn lại của Header Fields chỉ đơn giản là một tập hợp các thông số, xác định trong một attribute=value. Trật tự của các thông số không ảnh hưởng nhiều tới kết quả.
Nói chung, Media-type được sử dụng để tuyên bố chung cho các loại dữ liệu, trong khi subtype chỉ định một định dạng cụ thể cho loại dữ liệu. Vì vậy, một Media-type của "image / xyz" là đủ để xác định dữ liệu đó là một hình ảnh. Các thông tin này có thể được sử dụng, ví dụ: để quyết định có hay không hiển thị một user các dữ liệu thô từ một subtype không được công nhận - như một hành động có thể là hợp lý cho Subtypes không được công nhận của văn bản, nhưng không cho Subtypes không được công nhận của hình ảnh hay âm thanh. Vì lý do này, Subtypes đăng ký của văn bản, hình ảnh, âm thanh, và video nhúng không nên chứa thông tin mà thực sự là một kiểu khác nhau. Các định dạng hợp chất như vậy nên được đại diện bằng cách sử dụng "multipart" hoặc "applications".
Các tham số chỉ có tác dụng bổ sung cho media subtype, và như vậy về cơ bản không ảnh hưởng đến bản chất của nội dung. Việc thiết lập các thông số có ý nghĩa tùy thuộc vào loại media type và subtype. Hầu hết các tham số được liên kết với một subtype cụ thể và duy nhất. Tuy nhiên, một đầu được mediatype có thể xác định các thông số được áp dụng cho bất kỳ subtype kiểu đó. Tham số có thể được yêu cầu xác định loại nội dung của chúng hoặc subtype.
3.3.1.4.1 Cú pháp của Conten-type Header Fields
Trong ký hiệu BNF bổ sung của 822 RFC, giá trị của một Content-Type Header Fields được định nghĩa như sau:
Cpmtent: = "Content-Type" ":" type "/" subtype
*(";" Tham số)
; Matching của các loại phương tiện và subtype ; is ALWAYS case-insensitive.
type := discrete-type / composite-type
discrete-type := "text" / "image" / "audio" / "video"
"application" / extension-token
composite-type := "message" / "multipart" / extension-token
extension-token := ietf-token / x-token extension-token: = IETF-token / x-token
ietf-token := <một gia hạn thẻ được xác định bởi một tiêu chuẩn RFC>
x-token := <Hai ký tự "X" hay "x-" theo sau không ảnh hưởn bởi khoảng trắng, bởi bất kỳ token>
subtype := token mở rộng / iana-token
iana-token := <Một định nghĩa mở rộng của token IANA của mẫu đơn này phải được đăng ký với IANA như quy định trong RFC 2048.>
parameter := thuộc tính "=" giá trị attribute := thuộc tính của token ; Matching của thuộc tính ; is ALWAYS case-insensitive.
value := token / quoted-String
token := 1*<any (US-ASCII) CHAR except SPACE, CTLs, token: = 1 *
<bất kỳ Mỹ (-ASCII) CHAR trừ Space, CTLs, or tspecials> hoặc tspecials>
tspecials := "(" / ")" / "<" / ">" / "@" / tspecials: = "(" / ")" / "<" /
">" / "@" /
"," / ";" / ":" / "\" / <"> "," / ";" / ":" / "\" / < ">
"/" / "[" / "]" / "?" "/" / "[" / "]" / "?" / "=" / "="
; Must be in quoted-String, ; to use within parameter values
Lưu ý rằng định nghĩa của "tspecials" là giống như định nghĩa trong RFC 822 của
"đặc biệt" với việc bổ sung trong ba ký tự "/", "?", Và "=", và gỡ bỏ các ""..
3.3.1.4.2 Content-type mặc định
Default RFC 822 messages without a MIME Content-Type header are taken by this protocol to be plain text in the US-ASCII character set, which can be explicitly specified as: Mặc định của tin nhắn theo chuẩn RFC 822 mà không có MIME Content-Type header được lấy bằng giao thức này sẽ trở thành một đoạn văn bản thuần (plain text) trong ký tự US-ASCII , mà có thể được quy định như sau:
Content-type: text/plain; charset=us-ascii Content-type: text / plain; charset
= us-ascii
Mặc định này được giả định là nếu không có Content-Type header field được chỉ định. Thì mặc định được được sử dụng khi một cú pháp nội dung không hợp lệ với Content-type header field gặp phải. Trong sự hiện diện của một phiên bản MIME- header fields và sự vắng mặt của bất kỳ Content-Type header fields, một User Agent nhận cũng có thể giả định rằng đoạn văn bản thuần mã US-ASCII của người gửi.
Plain US-ASCII text may still be assumed in the absence of a MIME-Version or the presence of an syntactically invalid Content-Type header field, but the sender's intent might have been otherwise. Văn bản thuần vẫn có thể được giả định trong sự vắng mặt của một phiển bảnMIME hay sự xuất hiện một Content-type header fields không hợp lệ, nhưng mục đích của người gửi có thể đã khác.