What is MIME type "application/x-msdos-program"?

A MIME type is a string that tells browsers and other tools how to handle a particular kind of file.

The MIME type application/x-msdos-program signals that a file is a DOS executable. It embeds an MZ header that tells the operating system how to run the code.

Files marked with this type include the traditional DOS-style programs like EXE and dynamic libraries like DLL.


This MIME type is less common on modern systems but remains important for accessing and preserving historic software. For more details on how MIME types work, visit MIME on Wikipedia.

Associated file extensions

Usage Examples

HTTP Header

When serving content with this MIME type, set the Content-Type header:


    Content-Type: application/x-msdos-program    
  

HTML

In HTML, you can specify the MIME type in various elements:


    <a href="file.dat" type="application/x-msdos-program">Download file</a>    
  

Server-side (Node.js)

Setting the Content-Type header in Node.js:


    const http = require('http');    
    
    http.createServer((req, res) => {    
      res.setHeader('Content-Type', 'application/x-msdos-program');    
      res.end('Content here');    
    }).listen(3000);    
  

Associated file extensions

FAQs

Which file extensions use application/x-msdos-program?

This MIME type is primarily associated with Windows and DOS executable files, specifically .exe and .dll. While modern Windows systems use the Portable Executable (PE) format, application/x-msdos-program remains a common identifier for these binaries on the web. You can learn more about these specific extensions at exe and dll.

How do I configure Apache to serve EXE files with the correct MIME type?

You can assign the MIME type by modifying your .htaccess file or the main server configuration. Add the following line to ensure browsers recognize the file correctly: AddType application/x-msdos-program .exe .dll. This helps prevent browsers from misinterpreting the binary data as text.

Why does my browser warn me when downloading a file with this MIME type?

Browsers flag application/x-msdos-program as high-risk because it represents an executable program that can run code on your computer. To prevent malware infections, modern browsers like Chrome and Edge automatically scan these files and ask for explicit user confirmation before saving them.

What is the difference between application/x-msdos-program and application/octet-stream?

application/x-msdos-program specifically identifies the file as a Microsoft DOS/Windows executable, whereas application/octet-stream is a generic label for unknown binary data. While both usually trigger a file download, using the specific DOS type provides more context to the client software about the file's intended operating system.

Can I run application/x-msdos-program files directly in a web browser?

No, web browsers cannot execute application/x-msdos-program files directly due to security sandboxing. When you click a link to this file type, the browser will download it to your local machine, where you must run it manually. To run these legacy programs inside a browser, you would need a JavaScript-based emulator like DOSBox ported to WebAssembly.

How do I add support for this MIME type in Nginx?

In Nginx, you can add the type definition inside your mime.types file or within a specific server block. Use the syntax: types { application/x-msdos-program exe dll; }. After saving the configuration, reload Nginx to apply the changes.

Does this MIME type work on macOS or Linux?

The MIME type itself can be served to any OS, but the content (the .exe or .dll file) is designed for Microsoft Windows or DOS. If a user downloads this file on macOS or Linux, they will not be able to run it natively without compatibility layers like Wine or virtualization software.

General FAQ

What is a MIME type?

A MIME (Multipurpose Internet Mail Extensions) type is a standard that indicates the nature and format of a document, file, or assortment of bytes. MIME types are defined and standardized in IETF's RFC 6838.

MIME types are important because they help browsers and servers understand how to process a file. When a browser receives a file from a server, it uses the MIME type to determine how to display or handle the content, whether it's an image to display, a PDF to open in a viewer, or a video to play.

MIME types consist of a type and a subtype, separated by a slash (e.g., text/html, image/jpeg, application/pdf). Some MIME types also include optional parameters.

How do I find the MIME type for a file?

You can check the file extension or use a file identification tool such as file --mime-type on the command line. Many programming languages also provide libraries to detect MIME types.

Why are multiple MIME types listed for one extension?

Different applications and historical conventions may use alternative MIME identifiers for the same kind of file. Showing them all helps ensure compatibility across systems.