application/zip MIME Type — ZIP File Downloads & HTTP Headers
ZIP archive format. A lossless compression format that bundles multiple files into a single archive. Universally supported across all operating systems. Used for bulk downloads, software distributions, and asset packages.
Used For
- Bulk file downloads
- Software distribution packages
- Asset export (design files, data exports)
- Backup archives
HTTP Header Example
HTTP/1.1 200 OK
Content-Type: application/zip
Content-Disposition: attachment; filename="project.zip"
Content-Length: 1048576
[binary ZIP data]Code Examples
// Express — serve a ZIP file
app.get('/download/project', async (req, res) => {
const zipBuffer = await buildZipArchive()
res
.set('Content-Type', 'application/zip')
.set('Content-Disposition', 'attachment; filename="project.zip"')
.send(zipBuffer)
})
// Stream a ZIP using archiver
import archiver from 'archiver'
app.get('/export', (req, res) => {
res.set('Content-Type', 'application/zip')
res.set('Content-Disposition', 'attachment; filename="export.zip"')
const archive = archiver('zip')
archive.pipe(res)
archive.directory('./files', false)
archive.finalize()
})Related MIME Types
Frequently Asked Questions
What is the application/zip MIME type?
ZIP archive format. A lossless compression format that bundles multiple files into a single archive. Universally supported across all operating systems. Used for bulk downloads, software distributions, and asset packages.
When should I set Content-Type: application/zip?
Set Content-Type: application/zip on HTTP responses that contain ZIP Archive data. Bulk file downloads.
What file extensions use application/zip?
Files with application/zip content typically use these extensions: .zip.
What happens if I serve this with the wrong Content-Type?
Browsers use the Content-Type header to decide how to handle the response. Serving application/zip content with an incorrect MIME type can cause browsers to display it incorrectly, refuse to execute it (scripts), or prompt an unintended download. Modern browsers respect X-Content-Type-Options: nosniff and will not attempt to auto-detect the type.
