Kiểu phương tiện

Kiểu phương tiện (trước đây gọi là kiểu MIME) là định danh hai phần cho định dạng file và nội dung định dạng được truyền trên Internet. Internet Assigned Numbers Authority (IANA) là cơ quan chính thức cho việc tiêu chuẩn hóa và xuất bản các phân loại này.  Loại vật liệu ban đầu được quy định tại Giấy đề nghị nhận xét 2045 trong tháng 11 năm 1996 như một phần của MIME (Multipurpose Internet Mail Extensions) đặc điểm kỹ thuật, để biểu thị loại email nội dung tin nhắn và file đính kèm; do đó được gọi là kiểu MIME.  Các loại phương tiện cũng được sử dụng bởi các giao thức internet khác như HTTP và các định dạng file tài liệu như HTML, cho mục đích tương tự.

Đặt tên 
Một loại phương tiện truyền thông bao gồm một kiểu và một kiểu con, được cấu trúc thêm vào một cây.  Một kiểu phương tiện có thể tùy ý xác định một hậu tố và tham số:

 type "/" [tree "."] subtype ["+" suffix] *[";" parameter]

Các kiểu hiện đang đăng ký là: application, audio, example, font, image, message, model, multipart, text và video.

Ví dụ, một file HTML có thể được chỉ định là text/html; charset=UTF-8.  Trong ví dụ này, text là kiểu, html là kiểu con và charset=UTF-8 là một tham số tùy chọn chỉ ra mã hóa ký tự.

Một kiểu con thường bao gồm một định dạng phương tiện, nhưng nó có thể hoặc cũng phải chứa nội dung khác, chẳng hạn như tiền tố cây, nhà sản xuất, sản phẩm hoặc hậu tố, theo các quy tắc khác nhau trong cây đăng ký.

Các kiểu, kiểu con và tên tham số không phân biệt chữ hoa chữ thường.  Các giá trị tham số thường phân biệt chữ hoa chữ thường, nhưng có thể được hiểu theo kiểu không phân biệt chữ hoa chữ thường tùy theo mục đích sử dụng.

Ví dụ phổ biến 

 application/javascript  
 application/json  
 application/x-www-form-urlencoded  
 application/xml  
 application/zip  
 application/pdf  
 application/sql  
 application/graphql  
 application/ld+json  
 application/msword (.doc) 
 application/vnd.openxmlformats-officedocument.wordprocessingml.document (.docx) 
 application/vnd.ms-excel (.xls) 
 application/vnd.openxmlformats-officedocument.spreadsheetml.sheet (.xlsx) 
 application/vnd.ms-powerpoint (.ppt) 
 application/vnd.openxmlformats-officedocument.presentationml.presentation (.pptx) 
 application/vnd.oasis.opendocument.text (.odt) 
 audio/mpeg  
 audio/ogg  
 multipart/form-data  
 text/css  
 text/html  
 text/xml  
 text/csv  
 text/plain  
 image/png  
 image/jpeg  
 image/gif

Cây đăng ký 
Tất cả các kiểu phương tiện nên được đăng ký bằng thủ tục đăng ký IANA.  Để đạt được hiệu quả và tính linh hoạt của quy trình đăng ký kiểu phương tiện, các cấu trúc khác nhau của các kiểu con có thể được đăng ký trong các cây đăng ký được phân biệt bằng cách sử dụng tiền tố cây.  Hiện tại các cây sau đây được tạo: tiêu chuẩn (không có tiền tố), nhà cung cấp (tiền tố vnd.), Cá nhân hoặc vanity (tiền tố prs.), chưa đăng ký (tiền tố x.).  Những cây đăng ký này được xác định lần đầu tiên vào tháng 11 năm 1996 (RFC 2048 đã lỗi thời - hiện là RFC 6838).  Cây đăng ký mới có thể được tạo bởi IETF Standards Action để đăng ký và quản lý bên ngoài bởi các tổ chức thường trực nổi tiếng (ví dụ: các hội khoa học).

Cây tiêu chuẩn 
Cây tiêu chuẩn không sử dụng bất kỳ tiền tố cây nào:

 type "/" subtype ["+" suffix] *[";" parameter]

Ví dụ: application/javascript, image/png.

Việc đăng ký trong cây tiêu chuẩn phải được liên kết với các thông số kỹ thuật của IETF được IESG phê duyệt trực tiếp hoặc được đăng ký bởi một tổ chức liên quan đến tiêu chuẩn được IANA công nhận.

Cây nhà cung cấp 
Cây nhà cung cấp bao gồm các kiểu phương tiện liên quan đến các sản phẩm có sẵn công khai.  Nó sử dụng tiền tố cây vnd.:

 type "/" "vnd." subtype ["+" suffix] *[";" parameter]

Ví dụ: application/vnd.ms-excel, application/vnd.oasis.opendocument.text.

Các thuật ngữ "nhà cung cấp" và "nhà sản xuất" được coi là tương đương trong ngữ cảnh.  Các tập đoàn công nghiệp cũng như các thực thể phi thương mại có thể đăng ký các kiểu phương tiện trong cây nhà cung cấp.  Đăng ký trong cây nhà cung cấp có thể được tạo bởi bất kỳ ai cần trao đổi các file được liên kết với một số sản phẩm phần mềm hoặc bộ sản phẩm.  Tuy nhiên, đăng ký thuộc về nhà cung cấp hoặc tổ chức sản xuất phần mềm sử dụng kiểu được đăng ký và nhà cung cấp hoặc tổ chức đó bất cứ lúc nào có thể chọn để xác nhận quyền sở hữu đăng ký do bên thứ ba thực hiện.

Cây cá nhân hoặc cây vanity 
Cây cá nhân hoặc cây vanity bao gồm các kiểu phương tiện được liên kết với các sản phẩm không công khai hoặc các loại phương tiện thử nghiệm.  Nó sử dụng tiền tố cây prs.:

 type "/" "prs." subtype ["+" suffix] *[";" parameter]

Ví dụ: audio/prs.sid, image/prs.btif.

Cây chưa đăng ký 
Cây chưa đăng ký bao gồm các loại phương tiện dành riêng cho sử dụng trong môi trường riêng tư và chỉ với sự thỏa thuận tích cực của các bên trao đổi chúng.  Nó sử dụng x. tiền tố cây:

 type "/" "x." subtype ["+" suffix] *[";" parameter]

Ví dụ: application/x.foo, video/x.bar.

Các kiểu phương tiện trong cây này không thể được đăng ký.  Theo RFC 6838 (xuất bản vào tháng 1 năm 2013), bất kỳ việc sử dụng các loại trong cây chưa đăng ký đều được khuyến khích mạnh mẽ.  Ngoài ra, các kiểu con có tiền tố x- hoặc X- không còn được coi là thành viên của cây này.

Theo RFC 2048 đã lỗi thời (xuất bản vào tháng 11 năm 1996), hiếm khi, cần phải sử dụng các loại chưa đăng ký, và như vậy sử dụng bất kỳ tiền tố x., x- hoặc X- không được khuyến khích.  RFC 1590 đã lỗi thời (xuất bản vào tháng 9 năm 1993) nói rằng việc sử dụng tiền tố x- hoặc X- có thể được sử dụng cho các kiểu con chưa đăng ký.

Các kiểu phương tiện đã được triển khai rộng rãi (với một kiểu con có tiền tố x- hoặc X-) mà không được đăng ký, nếu có thể, nên đăng ký lại với một kiểu con có tiền tố thích hợp.  Nếu điều này là không thể, thì kiểu phương tiện có thể, sau khi được cả người đánh giá loại phương tiện và IESG chấp thuận, sẽ được đăng ký trong cây tiêu chuẩn với loại phụ không được trộn.

Hậu tố 
Hậu tố là một sự bổ sung cho định nghĩa loại phương tiện để chỉ định thêm cấu trúc cơ bản của kiểu phương tiện đó.  Các kiểu phương tiện sử dụng cú pháp có cấu trúc có tên nên sử dụng "+"suffix đăng ký IANA thích hợp cho cú pháp có cấu trúc đó khi chúng được đăng ký.  Không nên sử dụng hậu tố chưa đăng ký (kể từ tháng 1 năm 2013).  Các thủ tục đăng ký hậu tố cú pháp có cấu trúc được định nghĩa trong RFC 6838.

Ví dụ về các hậu tố hiện đang đăng ký là: +xml, +json, +ber, +der, +fastinfoset, +wbxml, +zip, +gzip, (trong RFC 7049) +cbor.

+xml Hậu tố +xml được xác định từ tháng 1 năm 2001 (RFC 3023).  Đăng ký chính thức của hậu tố +xml và các hậu tố khác được xác định từ tháng 1 năm 2013 (RFC 6839).

Mailcap 
Mailcap (xuất phát từ cụm từ "mail capability") là một loại file meta được sử dụng để định cấu hình cách các ứng dụng nhận biết MIME như ứng dụng thư khách và trình duyệt web hiển thị các file thuộc các loại MIME khác nhau.  Định dạng mailcap được xác định bởi RFC1524 "Cơ chế cấu hình tác nhân người dùng cho thông tin định dạng thư đa phương tiện) nhưng không được định nghĩa là một tiêu chuẩn Internet.  Nó được hỗ trợ bởi hầu hết các hệ thống Unix.

Các dòng có thể là các nhận xét bắt đầu bằng ký tự # hoặc loại mime theo sau là cách xử lý loại mime đó.  Phần đầu tiên được gọi là kiểu nội dung và phần thứ hai được gọi là lệnh xem.  Ví dụ: video/mpeg; xmpeg %s cho biết nếu một file được mã hóa bằng mime có loại video/mpeg, hãy chạy chương trình xmpeg với tên file làm tham số.

mime.types 
File được liên kết là file mime.types, liên kết các phần mở rộng tên file với loại MIME.  Nếu loại MIME được đặt đúng, điều này là không cần thiết, nhưng loại MIME có thể được đặt không chính xác hoặc được đặt thành loại chung như application/octet-stream và mime.types cho phép một người quay lại phần mở rộng trong những trường hợp này.  Tương tự, vì nhiều hệ thống file không lưu trữ thông tin loại MIME, mà thay vào đó dựa vào phần mở rộng tên file, file mime.types thường được các máy chủ web sử dụng để xác định loại MIME.

Khi xem một file, hai file này hoạt động cùng nhau như sau: mime.types liên kết một phần mở rộng với loại MIME, trong khi mailcap liên kết loại MIME với chương trình.

Trong các hệ thống kiểu UNIX, file mime.types thường nằm ở /etc/mime.types và/hoặc $HOME/.mime.types và định dạng đơn giản là mỗi dòng là một danh sách được phân tách bằng dấu cách của loại MIME, theo sau là 0 hoặc nhiều phần mở rộng.  Ví dụ: loại HTML có thể được liên kết với các phần mở rộng .htm và .html theo dòng sau: 
 text/html      htm   html

Dùng Netscape 
File mime.types ở Netscape, nơi nó sử dụng một định dạng khác; nó đã sử dụng các cặp giá trị khóa và danh sách các tiện ích mở rộng được phân tách bằng dấu phẩy, cùng với một tiêu đề tiêu chuẩn bao gồm một nhận xét cụ thể xác định file là file mime.types, như sau. 
 #--Netscape Communications Corporation MIME Information
 # Do not delete the above line. It is used to identify the file type.
 
 type=text/html exts=htm,html

Xem thêm 

 XML và MIME

Tham khảo

Liên kết ngoài 

 Danh sách các kiểu phương tiện chính thức của IANA
 The Python Standard Library | mailcap Mailcap file handling

Định dạng tập tin
Linux
Metadata