What is MIME type "application/x-msdownload"?

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

application/x-msdownload is a MIME type used for executable files on Windows.
It signals that a file can be run directly by the operating system and usually contains compiled code or scripts.
Files with this MIME type can alter system settings or launch programs, so they must be handled with care.
Files using this MIME type often have extensions such as DLL, BAT, and COM.
Each of these file types serves a different role. For example, the DLL is a dynamic link library used by multiple programs, the BAT is a batch script that automates tasks, and the COM is a command executable.
This MIME type remains central to ensuring that Windows knows how to safely handle and execute specific file types.

Associated file extensions

Usage Examples

HTTP Header

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


    Content-Type: application/x-msdownload    
  

HTML

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


    <a href="file.dat" type="application/x-msdownload">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-msdownload');    
      res.end('Content here');    
    }).listen(3000);    
  

Associated file extensions

FAQs

What files commonly use the application/x-msdownload MIME type?

This MIME type is primarily used for Microsoft Windows executable files and system components. While often associated with installers, it specifically covers files like DLL (Dynamic Link Libraries), BAT (Batch scripts), and COM executables, signaling to the browser that the file contains code meant to be run on a Windows OS.

Why do browsers warn me when downloading application/x-msdownload files?

Because these files contain executable code, they have the ability to alter system settings or install software, which poses a security risk if the source is malicious. Modern browsers like Chrome and Edge use security features (like SmartScreen) to flag application/x-msdownload content, forcing users to confirm they trust the source before saving.

How do I configure Apache to serve .dll and .bat files with this MIME type?

You can define the mapping in your .htaccess or global configuration file. Add the line AddType application/x-msdownload .dll .bat .com .exe to ensure the server sends the correct header, preventing browsers from trying to display the binary code as text.

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

application/octet-stream is a generic fallback for unknown binary data, whereas application/x-msdownload specifically identifies the file as a Microsoft executable. Using the specific x-msdownload type provides better context to the client software regarding how to handle the file, though both usually result in a "Save As" dialog.

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

In your nginx.conf or included mime.types file, you should add the extensions to the specific type definition. Use the format: application/x-msdownload dll bat com exe msi; inside the types { ... } block to ensure correct delivery.

Is application/x-msdownload a standard IANA MIME type?

The x- prefix indicates that it is a non-standard or vendor-specific type, originally introduced by Microsoft. Despite not being a strict IANA standard compared to generic types, it is the de facto standard for delivering Windows binaries and is universally recognized by web clients.

Can application/x-msdownload files be viewed in a web browser?

No, browsers cannot execute Windows programs or scripts like BAT files directly in the viewport. When a browser encounters this header, it will automatically trigger a download action, saving the file to the user's local machine for execution outside the browser environment.

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.