MIME Type (Multi-purpose Internet Mail Extensions) là cách chuẩn hóa để phân loại các loại tệp trên internet.
Bài viết giải thích về các thành phần của MIME Type và cách xác định tệp trong Linux thuộc loại MIME Type nào bằng các công cụ dòng lệnh.
1. MIME Type
- Một MIME Type có hai thành phần là type và subtype
Ví dụ:text/html
thì (type:text
, subtype:html
). - Có 10 loại Type chính:
text
,application
,audio
,example
,font
,image
,message
,model
,multipart
, vàvideo
. - MIME Type cũng có thể chứa các thành phần như tiền tố (prefix) hoặc hậu tố (suffix) như
type "/" [tree "."] subtype ["+" suffix]
ví dụ:application/vnd.api+json
.
Nhờ có MIME Type mà khi trình duyệt và máy chủ trao đổi dữ liệu với nhau, trình duyệt sẽ có hành vi xử lý file đúng cách.
Chẵng hạn, khi server thông báo cho trình duyệt biết đó là một file có MIME Type là image/png
thì thay vì download/save file lại như các định dạng khác, trình duyệt sẽ hiện file ảnh đó ngay trên trình duyệt. Nếu server thông báo đó là một file có dạng application/zip thì trình duyệt sẽ download file đó xuống ổ cứng ngay lập tức.
2. Xác định MIME Type của tệp
Có hai cách để xác định MIME Type:
- Dựa trên phần mở rộng của tệp: Nhanh nhưng dễ sai nếu phần mở rộng bị thay đổi.
- Dựa trên nội dung của tệp: Chính xác hơn, nhưng chậm hơn do phải đọc dữ liệu tệp.
3. Công cụ dòng lệnh trong Linux để xác định MIME Type của file
Lệnh xdg-mime
Để dùng được lệnh xdg-mime
này trước tiên bạn cần cài đặt gói xdg-utils
Dùng cho Ubuntu:
sudo apt install xdg-utils
Cho almalinux/rocky/centos:
sudo dnf install xdg-utils
Lệnh sẽ kiểm tra dựa trên phần mở rộng của file
Ví dụ bạn có một file ảnh là anh-nen-cute.jpg trong thư mục /home/tmp
Bạn cần di chuyển vào thư mục chứa file ảnh bằng lệnh cd
cd /home/tmp
Sau đó mới dùng lệnh xdg-mime
xdg-mime query filetype anh-nen-cute.jpg
Kết quả: image/jpeg
Do đó nếu đổi phần mở rộng của file từ .jpg sang .zip, lệnh có thể trả về kết quả không chính xác và nhận nhầm đó là file .zip như dưới
xdg-mime query filetype anh-nen-cute.zip
Kết quả: application/zip
Trong trường hợp file không có phần mở rộng thì lệnh xdg-mime
mới đọc nội dung file để xác định.
xdg-mime query filetype anh-nen-cute
Kết quả: image/jpeg
Lệnh file
có sẵn trên linux
Không phụ thuộc vào phần mở rộng, chỉ đọc nội dung tệp.
Chính xác hơn lệnh xdg-mime
trong trường hợp phần mở rộng bị thay đổi.
Ví dụ:
file --mime-type onePicture.zip
Kết quả: image/jpeg
Kết luận
- MIME Type giúp phân loại và nhận diện tệp trên internet.
- Hai công cụ phổ biến để xác định MIME type trong Linux là
xdg-mime
vàfile
. xdg-mime
có thể bị nhầm lẫn nếu chỉ dựa vào phần mở rộng, trong khifile
đáng tin cậy hơn nhờ kiểm tra nội dung tệp.