Cẩm Nang Toàn Diện Về MIME Types Cho Lập Trình Viên Web
Bảng tra cứu MIME type chuẩn IANA, cách cấu hình header Content-Type và tầm quan trọng sống còn của header X-Content-Type-Options: nosniff.
MIME type (Multipurpose Internet Mail Extensions), được IANA chuẩn hóa, hướng dẫn trình duyệt web và HTTP client cách diễn giải và hiển thị các luồng byte nhận được. Đặt MIME type không đúng dẫn đến tệp tải xuống dưới dạng văn bản thuần túy, luồng video bị hỏng hoặc các lỗ hổng bảo mật như tấn công MIME-sniffing.
Bảng MIME Type Web Phổ Biến
| Phần mở rộng | MIME Type | Mô tả |
|---|---|---|
.pdf | application/pdf | Tài liệu PDF Adobe |
.docx | application/vnd.openxmlformats-officedocument.wordprocessingml.document | Microsoft Word |
.json | application/json | JavaScript Object Notation |
.csv | text/csv | Giá Trị Phân Cách Bằng Dấu Phẩy |
.zip | application/zip | Archive ZIP |
.png | image/png | Đồ Họa Mạng Di Động |
.jpg | image/jpeg | Hình Ảnh JPEG |
.txt | text/plain | Văn Bản Thuần Túy |
Tải file CSV 1MB được phục vụ với header text/csv chuẩn để kiểm thử bộ phân tích trình duyệt.
Tải File Mẫu 1MB CSV →Áp Dụng Content-Type Trong HTTP Headers
HTTP/1.1 200 OK
Content-Type: application/pdf
Content-Disposition: inline; filename="statement.pdf"
X-Content-Type-Options: nosniff
Header X-Content-Type-Options: nosniff Quan Trọng
Các trình duyệt cũ cố gắng "ngửi" nội dung tệp bất kể Content-Type header khai báo gì. Kẻ tấn công có thể tải lên tệp HTML chứa JavaScript được giả mạo với header text/plain; trình duyệt sẽ phát hiện thẻ HTML và thực thi script độc hại (Cross-Site Scripting).
Đặt X-Content-Type-Options: nosniff ra lệnh cho trình duyệt tin tưởng MIME type đã khai báo và từ chối thực thi các tệp không phải thực thi.
Nguyễn Đại Long
Tác GiảBackend Lead • Chuyên gia Kiến trúc Hệ thống Phân tán & Lưu trữ Đám mây
Hơn 4 năm kinh nghiệm thiết kế các hệ thống xử lý tệp tải lên thông lượng lớn, tối ưu hóa cơ sở dữ liệu và hạ tầng phân tán Cloudflare R2 / AWS S3. Người sáng lập FileDummy và Mạng lưới Hệ sinh thái NDL.
Bài viết này có hữu ích không?
Bấm Thích để ủng hộ tác giả và giúp bài viết lan tỏa tới cộng đồng lập trình viên.
Thảo Luận Kỹ Thuật & Đóng Góp Ý Kiến (0)
Chia sẻ kết quả benchmark, phản hồi các trường hợp biên hoặc đặt câu hỏi chuyên môn.
Chưa có bình luận nào. Hãy là lập trình viên đầu tiên bắt đầu cuộc thảo luận!
Câu Hỏi Thường Gặp (FAQ)
What is the MIME type for PDF files?▾
application/pdf. Without the correct MIME type, some browsers display raw binary instead of rendering the PDF. Always serve PDF files with Content-Type: application/pdf.
What MIME type should I use for JSON API responses?▾
application/json. Not text/json (non-standard) or application/javascript (incorrect). For JSON:API specification responses, use application/vnd.api+json. UTF-8 is the JSON default per RFC 8259.
Why does the browser download a file instead of displaying it?▾
Two causes: (1) The server sends Content-Disposition: attachment — forces download regardless of MIME type. (2) The MIME type is application/octet-stream — browsers download unrecognized types. To display PDF inline, serve with Content-Type: application/pdf and Content-Disposition: inline.