What is MIME type "text/plain"?

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

The MIME type text/plain identifies files that hold unformatted text only. Text shows exactly as it is stored, with no hidden styling or layout instructions.

Plain text files are simple and widely supported. They work in text editors, email clients, and web browsers. This makes them ideal for situations where no extra formatting is needed.

For instance, common files like TXT, TEXT, and ASC use this MIME type. Other examples include files such as CFG, MANIFEST, and LOG.

Unlike MIME types that include markup (like text/html), text/plain does not process tags. This ensures no hidden scripts or formatting instructions interfere with the content.

For more technical details, see the explanation on MDN Web Docs.

Associated file extensions

Usage Examples

HTTP Header

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


    Content-Type: text/plain    
  

HTML

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


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

Associated file extensions

FAQs

Why does my browser display HTML tags instead of rendering the page?

This happens when the server sends the file with the text/plain MIME type instead of text/html. Browsers interpret text/plain strictly as raw content, meaning they will display the source code (e.g., <h1>Title</h1>) rather than formatting it as a heading.

How do I configure Apache to serve .log or .ini files as text in the browser?

By default, servers might force these files to download. To view them in the browser, add AddType text/plain .log .ini to your .htaccess or server configuration file. This tells the server to apply the text/plain header to LOG and INI files.

Does text/plain support specific character encodings like UTF-8?

Yes, but the encoding must be explicitly declared in the HTTP header, for example: Content-Type: text/plain; charset=utf-8. Without this parameter, browsers may default to ASCII or ISO-8859-1, potentially causing special characters to appear as garbled text (mojibake).

Why is my CSS or JavaScript file blocked when served as text/plain?

Modern browsers enforce strict MIME type checking for security. If a file is referenced as a stylesheet or script but the server returns text/plain, the browser will block execution to prevent malicious code usage. Ensure you use text/css or the correct JavaScript MIME type instead.

Is it safe to allow users to upload text/plain files?

While generally safer than binary executables, text/plain files can still pose risks if they contain malicious HTML or JavaScript and the server allows MIME sniffing. To secure your application, always serve user content with the header X-Content-Type-Options: nosniff.

Why are so many different extensions like .cfg, .manifest, and .txt linked to this type?

The text/plain type is the universal fallback for human-readable data. Configuration files like CFG, lists like LST, and documentation files all store data as simple characters, making this MIME type the most accurate description of their content structure.

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.