What is MIME type "application/x-glksave"?
A MIME type is a string that tells browsers and other tools how to handle a particular kind of file.
application/x-glksave is a MIME type for files that carry saved game data. These files use the Quetzal file format to store a snapshot of a game’s state.They are primarily used by interactive fiction engines and interpreters that follow the Glk I/O model. The format saves memory, variables, and game progress so you can resume a game later.
Files of this type typically come with the SAV or GLKSAVE extension.
- Restores a paused game session.
- Stores binary data of the game’s current state.
- Interacts with engines that implement the Glk standard.
- Key for resuming interactive fiction adventures.
Associated file extensions
Usage Examples
HTTP Header
When serving content with this MIME type, set the Content-Type header:
Content-Type: application/x-glksave
HTML
In HTML, you can specify the MIME type in various elements:
<a href="file.dat" type="application/x-glksave">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-glksave');
res.end('Content here');
}).listen(3000);
Associated file extensions
FAQs
What programs can open application/x-glksave files?
You need an Interactive Fiction interpreter that supports the Glk standard, such as Gargoyle, Lectrote, or Spatterlight. These applications read the binary structure to restore your game session. If you are playing in a browser, web-based interpreters like Parchment may handle these files automatically.
How do I configure Apache to serve .glksave files correctly?
To ensure browsers recognize the file as a saved game rather than plain text, add the MIME type to your .htaccess file or global config. Use the directive: AddType application/x-glksave .glksave .sav. This ensures the correct Content-Type header is sent during downloads.
Why does my browser download the file instead of resuming the game?
Most web browsers do not have native support for application/x-glksave. Unless the website integrates a JavaScript interpreter (like Quixe/Parchment), the browser treats the file as an unknown binary and triggers a download. You can then load the file into a local interpreter.
Is application/x-glksave an official IANA standard?
No, the x- prefix indicates that it is a non-standard or experimental subtype. It is the de facto standard used by the Interactive Fiction community for Quetzal format save files, but it is not centrally registered with IANA.
How do I add support for this MIME type in Nginx?
You can add the type definition to your mime.types file or within a specific server block. Add the line: types { application/x-glksave glksave sav; }. This configuration helps the server identify both glksave and sav files correctly.
What is the difference between .sav and .glksave extensions?
Functionally, there is no difference if the underlying format is Quetzal; both use the application/x-glksave MIME type. The .glksave extension is more specific to Glk-based games to avoid confusion with generic save files, while .sav is a broader convention used by many different software types.
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.