MIME là gì? MIME là một thuật ngữ phổ biến trong lĩnh vực công nghệ thông tin, đặc biệt liên quan đến việc xử lý hình ảnh, văn bản, và âm thanh trong email. Đây là một tiêu chuẩn đã được thiết lập từ lâu và hiện nay vẫn đang được phát triển và cải tiến. Hãy cùng VinaHost khám phá thêm về MIME trong bài viết dưới đây để có cái nhìn tổng quan hơn.
1. MIME là gì?
MIME, viết tắt của Multipurpose Internet Mail Extensions, là một tiêu chuẩn mở rộng của email, cho phép người dùng trao đổi các tệp tin và dữ liệu đa dạng như video, âm thanh, chương trình ứng dụng và hình ảnh.
MIME khác biệt với SMTP ở việc hỗ trợ gửi văn bản ASCII và dữ liệu không phải ASCII thông qua địa chỉ email. Đối với văn bản không thuộc bảng mã ASCII, giao thức MIME được coi là bắt buộc.
Xem thêm: [Tìm Hiểu] SMTP Là Gì? Hướng Dẫn [A-Z] Cấu Hình SMTP
2. Lịch sử ra đời của tiêu chuẩn MIME
MIME có nguồn gốc từ lâu đời, khi Nathaniel Borenstein, một nhân viên kỹ thuật tại Bellcore, đề xuất SMTP với Lực lượng Đặc nhiệm Kỹ thuật Internet (IETF) vào năm 1991. Đề xuất này liên quan đến việc mở rộng máy khách và máy chủ web, xử lý các loại dữ liệu một cách nhanh chóng và chính xác, bao gồm cả văn bản ASCII và các tệp nhị phân, được mã hóa khi truyền qua SMTP.
MIME không bị ràng buộc trong việc xử lý dữ liệu mà còn có vai trò quan trọng trong các giao thức truyền thông khác nhau. Mặc dù ban đầu MIME được sử dụng để khắc phục các hạn chế của SMTP và email, nhưng nó đã mở ra nhiều ứng dụng khác trong việc truyền tải dữ liệu trên Internet.
3. Ưu điểm của MIME
So với giao thức SMTP, MIME mang lại một số ưu điểm cụ thể như sau:
- Cho phép người dùng gửi các tệp đính kèm dưới dạng nhị phân qua địa chỉ email.
- Cho phép bao gồm các tệp đính kèm thuộc nhiều loại khác nhau trong cùng một email.
- Không giới hạn độ dài của văn bản.
Multipart hoặc Alternative giúp hệ thống trình bày thông điệp dưới dạng HTML hoặc văn bản thuần túy.
Xem thêm: Mail Server là gì? | Tổng hợp thông tin [A-Z] về Mail Server
4. Hạn chế của MIME
Hạn chế của MIME bao gồm:
- Khả năng tương thích: Mặc dù MIME cung cấp một cách linh hoạt để truyền tải các loại dữ liệu đa phương tiện, nhưng vẫn có thể gặp vấn đề về khả năng tương thích giữa các ứng dụng và thiết bị khác nhau.
- Hiệu suất: Việc mã hóa và giải mã dữ liệu MIME có thể tạo ra một lượng lớn băng thông mạng và tốn nhiều tài nguyên máy chủ, đặc biệt khi xử lý các tệp tin đính kèm lớn.
- Bảo mật: MIME không cung cấp các biện pháp bảo mật tích hợp, điều này có thể tạo ra các lỗ hổng bảo mật như việc xâm nhập, truy cập trái phép hoặc tấn công dựa trên nội dung của các tệp tin đính kèm.
- Phức tạp cho người dùng cuối: Đôi khi việc xử lý các thông điệp MIME có thể phức tạp đối với người dùng cuối, đặc biệt là khi cần phải đối phó với các tệp tin đính kèm có định dạng phức tạp.
- Quản lý và bảo trì: MIME có thể tạo ra thách thức trong việc quản lý và bảo trì hệ thống email và các ứng dụng liên quan do yêu cầu sự hiểu biết và kiểm soát kỹ thuật cao.
5. Nguyên lý hoạt động của MIME
Các thư điện tử sử dụng định dạng MIME được truyền qua các giao thức tiêu chuẩn như Post Office Protocol (POP), SMTP hoặc Internet Message Access Protocol (IMAP). Email bao gồm nhiều phần khác nhau, trong đó phần tiêu đề được xác định bằng các ký tự không phải ASCII. RFC 2045 của IETF đóng vai trò quan trọng trong việc định nghĩa các tiêu đề được sử dụng để mô tả thông điệp MIME.
Máy chủ thực hiện chèn MIME khi bắt đầu quá trình truyền email. Sau đó, khách hàng sẽ sử dụng tiêu đề MIME để chọn trình phát phù hợp cho dữ liệu. Các trình phát này có thể được tích hợp trong trình duyệt web hoặc ứng dụng khách. Ví dụ, mọi trình duyệt đều tích hợp trình phát cho các định dạng ảnh JPEG, GIF và có khả năng xử lý các tệp HTML.
Đối với người gửi, MIME chuyển đổi dữ liệu từ không phải ASCII thành dữ liệu 7-bit NVT hoặc dữ liệu kết thúc mạng ảo. ASCII 7-bit bao gồm 128 ký tự, trong khi MIME cung cấp dữ liệu biến đổi cho SMTP của một ứng dụng khách. Đối với người nhận, email chuyển trở lại dữ liệu ban đầu để họ có thể xem nội dung, video, âm thanh hoặc bất kỳ loại dữ liệu nào khác.
Xem thêm: SPF Record là gì? | Hướng dẫn tạo TXT SPF Record A-Z
6. Một số trường MIME header
MIME header (Multipurpose Internet Mail Extensions) chứa các phần con sau:
- MIME-Version: Được sử dụng để xác định rằng thư có định dạng MIME với giá trị là 1.0.
- Content-Type: Mô tả phương tiện bên trong nội dung thư. Nó bao gồm các danh mục chung của dữ liệu và một Type phụ chứa MIME đại diện. Các loại MIME (Multipurpose Internet Mail Extensions) không phân biệt chữ thường hoặc chữ hoa.
- Content-Disposition (Nội dung – Sắp xếp): Xác định cách trình bày email với các vấn đề như hiển thị thông báo tự động (Inline), không hiển thị tệp đính kèm tự động và sử dụng RFC 2183 để chỉ định cách bố trí nội dung.
- Content-Transfer-Encoding (Nội dung – Chuyển – Mã hóa): Cho biết loại mã hóa được sử dụng để chuyển đổi dữ liệu nhị phân thành văn bản đã được mã hóa ngoài cái đã được chỉ định trong tiêu đề nội dung.
7. MIME Type là gì?
Loại MIME (MIME Type) là một tiêu chuẩn quan trọng để phân loại các loại tập tin được sử dụng trên Internet, đặc biệt là trong việc định dạng email. Khác với giao thức gửi mail ban đầu chỉ hỗ trợ gửi plaintext, MIME đã được giới thiệu như một phần mở rộng, cho phép thư điện tử truyền các tệp có định dạng khác nhau như HTML, video, âm nhạc, và nhiều hơn nữa. Gần như tất cả các thư điện tử trên Internet đều được truyền qua giao thức SMTP theo định dạng MIME.
Trong thời đại hiện nay, MIME Type không chỉ được áp dụng trong email, mà nó cũng đã được máy chủ chấp nhận như một phương tiện để thông báo cho trình duyệt về loại dữ liệu được gửi tới, giúp trình duyệt có thể xử lý dữ liệu một cách chính xác.
Tính chất cơ bản của MIME bao gồm hai phần: Type chính và type phụ, chúng được phân tách bằng dấu gạch chéo (/). Ngoài ra, MIME Type cũng có thể bao gồm các thuộc tính bổ sung sau dấu chấm phẩy.
Ví dụ, loại MIME cho các tệp Microsoft Word được xác định là ứng dụng với Type phụ là msword. Kết hợp với nhau, loại MIME hoàn chỉnh là ứng dụng/msword.
Thêm một ví dụ minh họa để bạn dễ hiểu hơn:
Giả sử bạn viết một số lá thư gửi cho bạn bè, nhưng mỗi lá thư lại được viết bằng một ngôn ngữ khác nhau. Lá thư đầu tiên bằng tiếng Pháp, lá thứ hai bằng tiếng Đức, và cứ tiếp tục như vậy.
Để người nhận có thể dịch những gì bạn viết, họ sẽ cần:
Trước hết, xác định loại ngôn ngữ.
Tiếp theo, dịch nội dung theo ngôn ngữ tương ứng. Tuy nhiên, việc xác định ngôn ngữ không phải lúc nào cũng đơn giản – nó sẽ mất thời gian và công sức. Mọi thứ sẽ dễ dàng hơn nếu bạn chỉ rõ ngôn ngữ bạn đang sử dụng ở đầu lá thư, bạn của bạn sẽ dễ dàng nhận biết ngôn ngữ cần dịch (ví dụ: “Tiếng Pháp”).
Tương tự, với nhiều loại định dạng dữ liệu khác nhau cần được gửi qua internet, việc chỉ định kiểu dữ liệu ở phía trước sẽ giúp máy chủ tương ứng diễn giải đúng và hiển thị dữ liệu phù hợp với người dùng.
Xem thêm: [Tìm hiểu] MDaemon là gì? | 8 tính năng nổi bật của MDaemon
8. Những MIME Type phổ biến hiện nay
Dưới đây là một số MIME Type phổ biến được sử dụng trên Internet:
- text/plain: Định dạng văn bản thường được sử dụng cho các tập tin văn bản không định dạng.
- text/html: Định dạng HTML được sử dụng để hiển thị trang web.
- application/json: Định dạng JSON được sử dụng để truyền và lưu trữ dữ liệu.
- application/xml: Định dạng XML thường được sử dụng cho việc truyền thông tin cấu trúc.
- image/jpeg: Định dạng JPEG cho các hình ảnh số.
- image/png: Định dạng PNG cho các hình ảnh có chất lượng cao.
- audio/mpeg: Định dạng MPEG cho các tập tin âm thanh.
- video/mp4: Định dạng MP4 cho các tập tin video.
- application/pdf: Định dạng PDF cho các tài liệu có dạng di động.
- application/octet-stream: Định dạng dữ liệu không xác định, thường được sử dụng khi không rõ loại dữ liệu.
Các MIME Type này giúp trình duyệt và các ứng dụng khác biết cách xử lý dữ liệu được truyền trên Internet.
Xem thêm: LDAP Server là gì? | Cách hoạt động và Phân loại LDAP
9. Cấu trúc của MIME Type
Tất cả các loại MIME được đăng ký thông qua IANA, một tổ chức giám sát việc chỉ định địa chỉ IP, quản lý khu vực gốc của DNS toàn cầu, và cấp phát các giao thức Internet. Để đảm bảo hiệu quả và linh hoạt trong việc đăng ký MIME, các cấu trúc khác nhau của các Type phụ được phân biệt thông qua việc sử dụng các tiền tố. Các cấu trúc phổ biến bao gồm: Cấu trúc tiêu chuẩn (không có tiền tố), cấu trúc nhà cung cấp (với tiền tố vnd.), Cá nhân hoặc vanity (với tiền tố prs.), và chưa đăng ký (với tiền tố x.).
9.1. Cấu trúc tiêu chuẩn
Cấu trúc tiêu chuẩn không sử dụng bất kỳ tiền tố nào.
Ví dụ: application/javascript, image/png
Việc đăng ký cấu trúc này phải tuân theo các thông số kỹ thuật của IETF và đượ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 mà IANA công nhận.
9.2. Cấu trúc nhà cung cấp
Cấu trúc nhà cung cấp bao gồm các MIME Type liên quan đến các sản phẩm được công khai. Nó sử dụng tiền tố là vnd.
Ví dụ:
application/vnd.ms-excel, application/vnd.oasis.opendocument.text
Các tập đoàn công nghiệp hoặc các tổ chức phi thương mại đều có thể đăng ký MIME Type có cấu trúc nhà cung cấp.
9.3. Cấu trúc cá nhân
Cấu trúc cá nhân bao gồm các MIME Type được sử dụng cho sản phẩm thử nghiệm hoặc không được công khai, sử dụng tiền tố prs.
Ví dụ: audio/prs.sid, image/prs.btif.
9.4. Cấu trúc chưa đăng ký
Cấu trúc chưa đăng ký bao gồm các MIME Type được sử dụng đặc biệt trong môi trường riêng tư và được các bên trao đổi chúng đồng ý. Cấu trúc này có tiền tố là dấu x.
Ví dụ: application/x.foo, video/x.bar
9.5. Hậu tố
Hậu tố là một phần bổ sung khi xác định MIME Type.
Ví dụ về các hậu tố hiện đang được đăng ký bao gồm:
+xml, +json, +ber, +der, +fastinfoset, +wbxml, +zip, +gzip, +cbor
10. Hướng dẫn cách khai báo MIME Type cho website chi tiết
Khi sử dụng ảnh cho website và tải lên một file ảnh có định dạng là jpg, png, hoặc một video bị lỗi, các file này vẫn hiện có trên máy chủ. Mã nguồn không thay đổi và hoạt động bình thường. Nguyên nhân chính là máy chủ chưa được thêm các MIME type để hiểu các file.
Để giải quyết vấn đề này nhanh chóng, bạn có thể gán thêm các MIME Type phù hợp với nhu cầu của bạn.
10.1. Cpanel
Bước 1: Truy cập MIME từ Cpanel
Có thể tìm bằng thanh tìm kiếm
Hoặc kéo xuống phần advance
Bước 2: Thường thì trên các hosting cpanel đã có đầy đủ các MINE type
Bước 3: Thêm 1 MINE type để tải những file có đuôi .jar (java)
Bước 4: Cách khác là có thể tạo tập tin .htaccess trong thư mục chứa các tệp đó.
Bước 5: Thêm MINE Type cần thiết => save change
Bước 6: Kiểm tra tải file .jar thành công khi vào link: https://domain.com/MicroEmulator.jar
Xem thêm: cPanel là gì | Hướng dẫn Cài đặt & Sử dụng cPanel [A-Z]
10.2. Windows(Plesk)
Bước 1: Truy cập vào Plesk Panel.
Bước 2: Click vào mục Websites & Domains.
Bước 3: Chọn Virtual Directories.
Bước 4: Mở tab MIME Types và nhấp vào Add MIME Type.
Bước 5: Điền định dạng vào phần Extension, sau đó chọn giá trị MIME Type thích hợp để nhập vào Content tương ứng, chọn OK.
Ví dụ sau đây sẽ tạo MIME Type cho tệp có phần mở rộng là jpg.
- Điền “jpg” (không có cặp dấu ngoặc kép) vào phần Extension
- Điền thủ công hoặc chọn giá trị MIME Type phù hợp trong danh sách Content (MIME Type của tệp có phần mở rộng jpg là image/jpeg)
- Chọn OK
Xem thêm: Plesk là gì | Hướng dẫn sử dụng [A-Z] trên Plesk chi tiết
10.3. Windows (IIS 7/8)
Để điều chỉnh hoặc thêm MIME Types cho các hosting chạy trên IIS7/8, bạn có thể thực hiện ngay tại tệp cấu hình web.config.
Thay đổi MIME Types hiện hữu
<configuration>
<system.webServer>
<staticContent>
<remove fileExtension=”.EXTENSION” />
<mimeMap fileExtension=”.EXTENSION” mimeType=”TYPE/SUBTYPE” />
</staticContent>
</system.webServer>
</configuration>
Thay đổi các giá trị EXTENSION, TYPE, và SUBTYPE tương ứng
- EXTENSION: Định dạng file.
- TYPE: Loại MIME mà bạn cần sử dụng, như application, image, hoặc video.
- SUBTYPE: Loại MIME subtype mà bạn cần sử dụng.
Ví dụ, để xử lý các tệp MP4, chúng ta có thể thêm đoạn sau vào tệp web.config.
<configuration>
<system.webServer>
<staticContent>
<remove fileExtension=”.mp4″ />
<mimeMap fileExtension=”.mp4″ mimeType=”video/mp4″ />
</staticContent>
</system.webServer>
</configuration>
Thêm MIME Types tùy chỉnh
<configuration>
<system.webServer>
<staticContent>
<mimeMap fileExtension=”.EXTENSION” mimeType=”TYPE/SUBTYPE” />
</staticContent>
</system.webServer>
</configuration>
10.4. Linux (DirectAdmin)
Bước 1: Bạn cần đăng nhập vào Giao diện Directadmin
Bước 2: Login vào User của bạn trên Directadmin hoặc có thể login vào ở Bước 1.
Sau đó ta chọn Advanced Features --> Chọn Mime Type
Bước 3: Chọn Add MIME Type để thêm định dạng MIME Type.
Sau đó điền Extension MIME Type mà bạn muốn Add vào.
Xem thêm: DirectAdmin là gì? | Cài đặt & Sử dụng DirectAdmin [A-Z]
10.5. Linux (.htaccess)
Sử dụng “AddType” để thêm một MIME Type, tham số tiếp theo là loại MIME và cuối cùng là phần mở rộng của tệp. Ngoài ra, một số loại tệp không thể chạy trực tiếp trên trình duyệt và yêu cầu tải về máy, MIME Type cần có để thiết lập là: application/octet-stream.
10.6. CyberPanel
Bước 1: Truy cập vào server (VPS) thông qua ssh
Bước 2: Mở tệp tin /etc/mime,types bằng trình text editor yêu thích của bạn (vi, vim, nano,…)
Bước 3: File này chứa các mime type đang có sẵn, thêm mime type mà bạn muốn vào cuối file và lưu lại.
Xem thêm: CyberPanel là gì? | Hướng dẫn Cài đặt & Cấu hình trên CyberPanel
11. Câu hỏi thường gặp về MIME
11.1. Tại sao lại có các định dạng dữ liệu khác nhau?
Chủ yếu là vì sự đa dạng về khả năng và mục đích phục vụ của chúng.
Ví dụ, định dạng PDF có sự khác biệt rất lớn so với định dạng hình ảnh, và cũng khác biệt so với định dạng âm thanh. Cả hai loại định dạng này đều phục vụ các mục đích khác nhau.
11.2. Làm thế nào để sửa được lỗi MIME Type?
Để giải quyết vấn đề này, bạn cần tuân theo các bước sau:
- Bước 1: Truy cập vào thư mục theo đường dẫn pub/static.
- Bước 2: Kiểm tra xem tệp .htaccess có tồn tại không (nếu thư mục đó được ẩn, nhấn ctrl + H để hiển thị).
- Bước 3: Nếu không có, bạn có thể tải xuống tệp .htaccess từ đường dẫn pub/static/ và sao chép nó vào máy chủ của bạn.
- Bước 4: Xóa cache của trình duyệt và Magento từ bộ nhớ, sau đó kiểm tra lại.
11.3. MIME Type và Content Type khác nhau như thế nào?
Content Type là một loại dữ liệu mở rộng của MIME Type, với sự khác biệt duy nhất là có thể bao gồm mã hóa bộ ký tự tùy chọn. Khi Content Type không chứa mã hóa bộ ký tự tùy chọn, nó tương đương với MIME Type. Ngược lại, MIME Type chỉ là dữ liệu trước khi mã hóa bộ ký tự được áp dụng.
Ví dụ: text/html; charset=UTF-8
- text/html là MIME Type
- ; là chỉ báo tham số bổ sung
- charset=UTF-8 là tham số mã hóa bộ ký tự
Ví dụ khác: application/msword
- application/msword là MIME Type
Nó không chứa mã hóa ký tự vì nó mô tả một octet-stream không được tạo thành trực tiếp.
11.4. Cách để phát MIME loại video?
Để đảm bảo rằng video MP4 có MIME Type đúng trên máy chủ của bạn, hãy tuân theo các bước sau đây để cấu hình MIME cho loại video:
- Nhấp chuột phải vào trang web trong IIS và chọn “Thuộc tính”.
- Chọn tab “Tiêu đề HTTP“.
- Chọn loại tệp.
- Trong danh sách MIME, chọn loại MIME mới.
- Nhập “MP4” cho tiện ích mở rộng và “video/mpeg” cho loại nội dung.
- Nhấp vào “OK”.
Xem thêm: PHPMailer là gì? Hướng dẫn sử dụng PHPMailer chi tiết
12. Tổng kết
Hy vọng bài viết đã giúp bạn trả lời được câu hỏi MIME là gì. Qua đó, bạn cũng có thể hiểu được cách hoạt động, ưu điểm và nguồn gốc của MIME. Giao thức này mang lại nhiều lợi ích đối với người dùng trong việc sử dụng email. Bạn có thể xem thêm các bài viết khác của VinaHost TẠI ĐÂY hoặc liên hệ với chúng tôi nếu cần tư vấn về dịch vụ:
- Email: support@vinahost.vn
- Hotline: 1900 6046
- Livechat: https://livechat.vinahost.vn/chat.php
Xem thêm một số bài viết khác
Email Domain Là Gì? Tổng Hợp Kiến Thức về Email Domain
Email Doanh Nghiệp Là Gì? So Sánh Email Business & Email Cá Nhân