What is MIME type "text/vnd.graphviz"?

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

text/vnd.graphviz is a plain text format used to describe graphs. It encodes a graph's structure using the DOT language, which defines nodes, edges, and their relationships.

This MIME type is mainly used by the Graphviz tool to automatically render visual diagrams from text. It allows users and software to easily create, modify, and share complex graph structures.


Files using this MIME type typically have the GV or DOT format.
For detailed information, visit Graphviz.

Associated file extensions

Usage Examples

HTTP Header

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


    Content-Type: text/vnd.graphviz    
  

HTML

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


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

Associated file extensions

FAQs

What is the purpose of the text/vnd.graphviz MIME type?

This MIME type identifies files containing DOT language source code, which describes graph structures for the Graphviz visualization software. When a server sends a file as text/vnd.graphviz, it indicates to the client that the content is a plain text description of nodes and edges intended to be rendered into a diagram.

Why do some Graphviz files use .gv instead of .dot?

The .gv extension is preferred to avoid conflicts with Microsoft Word document templates, which also use the .dot extension. While the text/vnd.graphviz MIME type handles both, using .gv ensures that operating systems do not mistakenly attempt to open the graph source code in Microsoft Word.

How do I configure Apache to serve Graphviz files correctly?

You can add the MIME type definition to your .htaccess file or main configuration. Add the line AddType text/vnd.graphviz .gv .dot to ensure browsers and downstream applications recognize the file format correctly.

Can web browsers render text/vnd.graphviz files natively?

No, most modern browsers will treat this MIME type as plain text or prompt a download. To display the actual graph diagram in a browser, you must compile the file to an image format (like SVG or PNG) on the server or use a client-side JavaScript library like viz.js or d3-graphviz to render the content.

How do I add text/vnd.graphviz support to Nginx?

Update your mime.types file or the http block of your Nginx configuration. Add text/vnd.graphviz gv dot; inside the types { ... } block, then reload the server to apply the changes.

Is text/vnd.graphviz safe to open?

Yes, files served with this MIME type are plain text, meaning they do not contain executable code. However, if you are running a server that automatically compiles these files using the dot command-line tool, ensure the input is sanitized to prevent resource exhaustion or command injection attacks via malformed graph definitions.

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.