Trình kiểm tra loại MIME của tệp

5 trên 2 xếp hạng
Tên
Kích thước
Loại
Ngày sửa đổi gần nhất

Trình kiểm tra loại MIME của tệp là công cụ miễn phí cho biết loại MIME cùng các thông tin chi tiết của tệp, gồm tên, kích thước và ngày sửa đổi gần nhất.

Trình kiểm tra loại MIME cho biết những gì?

Trình kiểm tra loại MIME cho biết cách một tệp được nhận diện khi trao đổi giữa trình duyệt, máy chủ, ứng dụng email và các phần mềm khác. Loại MIME, hiện có tên gọi chính thức là loại phương tiện, thường gồm một loại cấp cao nhất và một loại con, được phân tách bằng dấu gạch chéo, chẳng hạn như application/pdf, image/png hoặc text/plain.

Kết quả này hữu ích khi xử lý lỗi tải tệp lên bị từ chối, kiểm tra tài nguyên trước khi triển khai hoặc xem xét tệp do bên thứ ba cung cấp. Ví dụ, một API có thể chấp nhận image/png nhưng từ chối tệp được nhận diện là application/octet-stream, ngay cả khi tên tệp kết thúc bằng .png.

Phần mở rộng tên tệp và loại MIME có liên quan nhưng không tương đương. Phần mở rộng là một phần của tên tệp, còn loại MIME là siêu dữ liệu do phần mềm gán hoặc suy luận. Các hệ điều hành và trình duyệt khác nhau có thể nhận diện cùng một tệp không phổ biến hoặc không có phần mở rộng theo những cách khác nhau.

Làm thế nào để kiểm tra loại MIME của tệp?

Chọn tệp trong trường Tệp, sau đó xem các thông tin hiện có. Trang này hiển thị các trường Loại, Kích thước, Tên và Ngày sửa đổi gần nhất.

  1. Chọn đúng tệp đang gặp lỗi trong quá trình tải lên, gửi yêu cầu API hoặc triển khai.
  2. So sánh Loại với loại phương tiện mà hệ thống tiếp nhận yêu cầu.
  3. Kiểm tra Tên để phát hiện phần mở rộng bị thiếu, bị lặp hoặc gây hiểu nhầm.
  4. Dùng Kích thước để xác nhận tệp không rỗng hoặc lớn bất thường.
  5. Xem Ngày sửa đổi gần nhất nếu cần phân biệt nhiều bản sao của cùng một tài nguyên.

Hãy kiểm tra một mẫu đại diện thay vì cho rằng mọi tệp có cùng phần mở rộng đều có siêu dữ liệu giống nhau.

Nên đọc thông tin tệp trả về như thế nào?

Hãy xem loại MIME là cách phần mềm phân loại tệp, rồi dùng các thông tin còn lại để kiểm tra xem bạn đã chọn đúng tệp hay chưa. Một loại thông thường có dạng type/subtype. Theo quy ước, các giá trị được viết bằng chữ thường, dù loại phương tiện không phân biệt chữ hoa chữ thường.

  • Loại có thể là một giá trị cụ thể như application/json, một giá trị chung như application/octet-stream, hoặc không có giá trị hữu ích nếu môi trường không nhận diện được tệp.
  • Tên giữ lại các dấu hiệu như .csv, .jpeg hoặc .tar.gz, nhưng chỉ riêng phần mở rộng không đủ để xác minh nội dung.
  • Kích thước có thể giúp phát hiện tệp xuất có dung lượng 0 byte, bản tải xuống chưa hoàn chỉnh hoặc tài nguyên không thuộc đúng bản dựng.
  • Ngày sửa đổi gần nhất giúp nhận biết các bản sao cục bộ đã cũ, nhưng đây chỉ là siêu dữ liệu, không phải hồ sơ đáng tin cậy về tác giả hoặc thời điểm xuất bản.

Các thông tin này có thể cho thấy dữ liệu không nhất quán, thay vì lỗi cú pháp. Những dấu hiệu cảnh báo thường gặp gồm tên tệp .json đi kèm text/plain, một hình ảnh chỉ được nhận diện là application/octet-stream, hoặc kích thước tệp bằng 0 trong khi đáng lẽ phải có nội dung.

Ngày sửa đổi cũng cần được xem xét theo ngữ cảnh. Việc sao chép, tải xuống, giải nén hoặc tạo lại tệp có thể làm thay đổi dấu thời gian. Nếu một hệ thống khác cung cấp ngày dưới dạng giá trị epoch, công cụ Dấu thời gian Unix sang ngày sẽ giúp bạn dễ so sánh hơn với định dạng ngày giờ thông thường.

Ví dụ về thông tin tệp

Hãy xem một tệp PDF xuất ra có siêu dữ liệu đã biết. Tệp đầu vào trong ví dụ có tên invoice-1042.pdf, kích thước 48.120 byte và loại phương tiện application/pdf. Kết quả tương ứng sẽ hiển thị cùng tên tệp và kích thước, trong đó Loại là application/pdf, còn ngày sửa đổi được ghi nhận của tệp xuất hiện trong Ngày sửa đổi gần nhất.

Tiếp theo, hãy xét một tệp không có phần mở rộng mang tên LICENSE. Tên này không có hậu tố để phần mềm dựa vào đó suy luận định dạng. Vì vậy, loại tệp có thể bị để trống, hiển thị dưới dạng chung hoặc phụ thuộc vào môi trường, ngay cả khi tệp chứa nội dung văn bản có thể đọc được. Kết quả đó không có nghĩa là tệp đã bị hỏng.

Khoảng trắng, dấu câu, chữ số, chữ cái có dấu và ký tự không thuộc bảng chữ cái Latinh trong tên tệp không làm thay đổi cú pháp MIME. Tệp có tên café-menu-2026.pdf vẫn có thể mang loại application/pdf. Những ký tự này có thể gây ra các vấn đề riêng về đường dẫn, mã hóa hoặc khả năng tương thích trên hệ thống cũ, nhưng đó là vấn đề xử lý tên tệp.

Khi nào chỉ kiểm tra loại MIME là chưa đủ?

Chỉ kiểm tra loại MIME là chưa đủ nếu vấn đề liên quan đến bảo mật, xác thực nội dung hoặc phản hồi HTTP thực tế của máy chủ. Siêu dữ liệu MIME có thể bị thiếu, không chính xác hoặc bị cố tình làm sai lệch, vì vậy không nên xem đây là bằng chứng cho thấy tệp an toàn.

Khi kiểm tra trước lúc triển khai, hãy xem cả tiêu đề Content-Type do máy chủ web trả về và thông tin của tệp cục bộ. Cấu hình máy chủ, CDN hoặc mã ứng dụng có thể gửi một giá trị khác với giá trị gắn với tệp nguồn. Trình phân tích URL có thể giúp tách và kiểm tra URL của tài nguyên trước khi bạn xem tiêu đề phản hồi bằng công cụ dành cho nhà phát triển của trình duyệt hoặc ứng dụng dòng lệnh.

Với các lượt tải lên nhạy cảm về bảo mật, hãy xác thực cấu trúc tệp hoặc chữ ký byte được nhận dạng trên máy chủ, áp dụng giới hạn kích thước và lưu tệp tải lên bên ngoài các vị trí có thể thực thi. Không trình kiểm tra MIME nào có thể thay thế việc quét phần mềm độc hại hoặc xác thực theo từng định dạng cụ thể.

Bạn cũng không cần lặp lại thao tác này với tệp không thay đổi nếu hệ thống tiếp nhận đã chấp nhận chính xác tài nguyên đó. Việc kiểm tra cũng không mang lại nhiều giá trị cho tệp chỉ được dùng trong một quy trình cục bộ có kiểm soát và quy trình này bỏ qua siêu dữ liệu MIME. Với phản hồi web trong môi trường vận hành thực tế, kiểm tra tiêu đề HTTP trực tiếp phù hợp hơn so với việc liên tục xem xét bản sao cục bộ.

Câu hỏi thường gặp

Tại sao tệp JPEG dùng image/jpeg thay vì image/jpg?

image/jpeg là loại phương tiện đã đăng ký dành cho hình ảnh JPEG. Phần mở rộng .jpg xuất hiện do giới hạn độ dài tên tệp trên các hệ thống cũ, nhưng điều đó không tạo ra một loại phương tiện image/jpg riêng.

Loại MIME có thể chứa thông tin mã hóa ký tự không?

Có. Một số loại phương tiện dựa trên văn bản có thể chứa tham số, chẳng hạn như text/html; charset=utf-8. Giá trị loại của tệp cục bộ có thể không gồm các tham số này vì việc xác định mã hóa ký tự thường đòi hỏi phải kiểm tra nội dung hoặc dựa vào thông tin từ hệ thống cung cấp tệp.

Đổi phần mở rộng có làm thay đổi nội dung tệp không?

Không. Đổi tên data.csv thành data.txt chỉ thay đổi tên tệp chứ không chuyển đổi các byte. Phần mềm có thể gán siêu dữ liệu khác sau khi đổi tên, vì vậy bạn cần kiểm tra cả phần mở rộng lẫn định dạng thực tế.

application/octet-stream có phải là lỗi không?

Không. Đây là loại chung dành cho dữ liệu nhị phân bất kỳ và thường được dùng khi không có loại phương tiện cụ thể hơn. Một số hệ thống tiếp nhận sẽ từ chối loại này vì chúng yêu cầu một loại được cho phép phải được nêu rõ. Vì vậy, hãy đối chiếu với thông số kỹ thuật của tính năng tải lên hoặc API.

Tôi có thể dùng công cụ này với tệp bí mật không?

Không thể xác định chắc chắn quá trình xử lý diễn ra ở đâu. Đừng mặc định tệp được xử lý tại một vị trí cụ thể. Nếu tệp chứa thông tin bí mật, thông tin cá nhân hoặc dữ liệu chịu sự quản lý, hãy dùng một mẫu không nhạy cảm hoặc phương pháp kiểm tra cục bộ đã được phê duyệt.

Tại sao loại tệp trong trình duyệt khác với Content-Type của máy chủ?

Hai giá trị này đến từ các nguồn riêng biệt. Siêu dữ liệu của tệp cục bộ có thể phụ thuộc vào trình duyệt hoặc hệ điều hành, còn HTTP Content-Type đến từ cấu hình máy chủ, ứng dụng hoặc CDN. Khi chẩn đoán hoạt động của trình duyệt, lượt tải xuống hoặc tài nguyên đã triển khai, hãy kiểm tra phản hồi trực tiếp.

Công cụ phổ biến