What is MIME type "application/sgml"?

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

application/sgml is the MIME type for documents written in Standard Generalized Markup Language (SGML).
It signals that the file contains markup, data definitions, and controlled vocabularies defined by the SGML standard (ISO 8879:1986).
Files like SGM and SGML use it to indicate their format.
Its primary use is in environments where detailed document metadata and structure are essential. For more on MIME types and SGML, visit this reference.

Associated file extensions

Usage Examples

HTTP Header

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


    Content-Type: application/sgml    
  

HTML

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


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

Associated file extensions

FAQs

What is the correct MIME type for SGML files?

The standard MIME type for Standard Generalized Markup Language files is application/sgml. While you may occasionally see text/sgml used in older systems, application/sgml is the IANA-registered media type and is preferred for ensuring correct processing by parsers.

Which file extensions are associated with application/sgml?

This MIME type is most commonly associated with the .sgml and .sgm extensions. You can learn more about these specific file formats at sgml and sgm.

Do web browsers natively support application/sgml?

No, modern web browsers like Chrome, Firefox, and Edge do not natively render raw SGML documents. While HTML is based on SGML, browsers are specifically built to render HTML and XML; opening a file served as application/sgml usually triggers a download or opens the source code in a text viewer.

How do I configure Apache to serve SGML files correctly?

To serve these files with the correct headers in Apache, add the AddType directive to your .htaccess file or server configuration. Use the line: AddType application/sgml .sgml .sgm.

How do I set up Nginx to handle application/sgml?

In Nginx, you should update the mime.types file or add a types block to your server configuration. Use the following syntax: types { application/sgml sgml sgm; } to ensure the server sends the correct Content-Type header.

What is the difference between application/sgml and text/html?

HTML is a specific application of SGML with a predefined set of tags, while application/sgml refers to the generic parent language used to define such structures. Use text/html for standard web pages and application/sgml only when serving raw SGML data files or legacy documentation.

Why is my SGML file downloading instead of opening in the browser?

This occurs because the server is sending the application/sgml header, and the browser does not know how to render the content visually. If you want the browser to display the raw code, you would need to serve it as text/plain, though this removes the semantic meaning of the MIME type.

Are there security concerns with parsing application/sgml?

Yes, like XML, SGML parsers can be vulnerable to attacks such as entity expansion (similar to "XML bombs"). It is important to ensure that any application processing these files is configured to limit entity expansion depth to prevent Denial of Service (DoS) attacks.

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.