RFC 6713 INFORMATIONAL COMPRESSION · MEDIA TYPES

gzip/zlib media types: The 'application/zlib' and 'application/gzip' Media Types

Registers application/gzip and application/zlib for compressed data.

On rfc-editor.org ↗
PUBLISHED
August 2012
AUTHORS
J. Levine
STREAM
IETF
GZIP MAGIC BYTES
0x1f, 0x8b
GZIP EXTENSION
gz
DOI
10.17487/RFC6713

RFC text

Contents
Original text · RFC Editor View on rfc-editor.org ↗
Internet Engineering Task Force (IETF)                         J. Levine
Request for Comments: 6713                          Taughannock Networks
Category: Informational                                      August 2012
ISSN: 2070-1721


       The 'application/zlib' and 'application/gzip' Media Types

Abstract

   This document defines the 'application/gzip' and 'application/zlib'
   media types for compressed data using the gzip and zlib compression
   formats.

Status of This Memo

   This document is not an Internet Standards Track specification; it is
   published for informational purposes.

   This document is a product of the Internet Engineering Task Force
   (IETF).  It represents the consensus of the IETF community.  It has
   received public review and has been approved for publication by the
   Internet Engineering Steering Group (IESG).  Not all documents
   approved by the IESG are a candidate for any level of Internet
   Standard; see Section 2 of RFC 5741.

   Information about the current status of this document, any errata,
   and how to provide feedback on it may be obtained at
   http://www.rfc-editor.org/info/rfc6713.

Copyright Notice

   Copyright (c) 2012 IETF Trust and the persons identified as the
   document authors.  All rights reserved.

   This document is subject to BCP 78 and the IETF Trust's Legal
   Provisions Relating to IETF Documents
   (http://trustee.ietf.org/license-info) in effect on the date of
   publication of this document.  Please review these documents
   carefully, as they describe your rights and restrictions with respect
   to this document.  Code Components extracted from this document must
   include Simplified BSD License text as described in Section 4.e of
   the Trust Legal Provisions and are provided without warranty as
   described in the Simplified BSD License.

1.  Introduction

   zlib [RFC1950] and gzip [RFC1952] are widely used compression
   formats. zlib is a stream format, while gzip adds header and trailer
   fields more appropriate for a file format.  Both implement the
   DEFLATE compression scheme described in [RFC1951].

   They are used to compress a wide variety of material, from
   unstructured text to structured data to executable code.

   Some applications have informally used media types such as
   application/gzip-compressed, application/gzipped, application/
   x-gunzip, application/x-gzip, application/x-gzip-compressed, and
   gzip/document to describe data compressed with gzip.  The media types
   defined in this document should replace those media types in future
   applications.

2.  The 'application/zlib' Media Type

   The 'application/zlib' media type describes a block of data that is
   compressed using zlib [RFC1950] compression.  The data is a stream of
   bytes as described in RFC 1950.

2.1.  Registration Details

   Type name: application

   Subtype name: zlib

   Required parameters: N/A

   Optional parameters: N/A

   Encoding considerations: Binary

   Security considerations: See Section 4 below.

   Interoperability considerations: N/A

   Published specification: [RFC1950]

   Applications that use this media type: anywhere data size is an issue

   Additional information:
      Magic number(s): first byte is usually 0x78 but can also be 0x08,
      0x18, 0x28, 0x38, 0x48, 0x58, or 0x68.  The first two bytes, when
      interpreted as an unsigned 16-bit number in big-endian byte order,
      contain a value that is a multiple of 31.

      File extension(s): N/A
      Macintosh file type code(s): N/A

   Person and email address to contact for further information: see
   http://www.zlib.net/

   Intended usage: COMMON

   Restrictions on usage: N/A

   Author: John Levine

   Change controller: IETF

3.  The 'application/gzip' Media Type

   The 'application/gzip' media type describes a block of data that is
   compressed using gzip [RFC1952] compression.  The data is a stream of
   bytes as described in RFC 1952.

3.1.  Registration Details

   Type name: application

   Subtype name: gzip

   Required parameters: N/A

   Optional parameters: N/A

   Encoding considerations: Binary

   Security considerations: See Section 4 below.

   Interoperability considerations: N/A

   Published specification: [RFC1952]

   Applications that use this media type: anywhere data size is an issue

   Additional information:
      Magic number(s): first two bytes are 0x1f, 0x8b.
      File extension(s): gz
      Macintosh file type code(s): N/A

   Person and email address to contact for further information: see
   http://www.gzip.org/
   Intended usage: COMMON

   Restrictions on usage: N/A

   Author: John Levine

   Change controller: IETF

4.  Security Considerations

   zlib and gzip compression can be used to compress arbitrary binary
   data such as hostile executable code.  Also, data that purports to be
   in zlib or gzip format may not be, and fields that are supposed to be
   flags, lengths, or pointers could contain anything.  Applications
   should treat any data with due skepticism.

   Also see the security considerations in the underlying format
   documents: Section 5 of [RFC1950], Section 6 of [RFC1951], and
   Section 4 of [RFC1952].

5.  IANA Considerations

   IANA has updated the "Application Media Types" registry to include
   'application/zlib' as described in Section 2 and 'application/gzip'
   as described in Section 3.

6.  Normative References

   [RFC1950]  Deutsch, P. and J-L. Gailly, "ZLIB Compressed Data Format
              Specification version 3.3", RFC 1950, May 1996.

   [RFC1951]  Deutsch, P., "DEFLATE Compressed Data Format Specification
              version 1.3", RFC 1951, May 1996.

   [RFC1952]  Deutsch, P., "GZIP file format specification version 4.3",
              RFC 1952, May 1996.

Author's Address

   John Levine
   Taughannock Networks
   PO Box 727
   Trumansburg, NY  14886

   Phone: +1 831 480 2300
   EMail: standards@taugh.com

ISO Plain Language

On this page
PROBLEMApplications used several informal media type names for gzip-compressed data, and there was no registration for zlib data.
MECHANISMThe RFC registers application/gzip for gzip streams and application/zlib for zlib streams; both use DEFLATE.
MEDIA TYPES REGISTEREDThe IANA Application Media Types registry includes both media types.

§1Why Register Compression Media Types

zlib and gzip are widely used compression formats, both based on DEFLATE. The RFC says zlib is a stream format, while gzip adds header and trailer fields suited to a file format.

Applications had used several informal names for gzip data. This memo defines application/gzip and application/zlib as the media types for the respective formats.

zlib and gzip both compress data, but use different formats. This memo gives each format a registered media type name.

§2The application/zlib and application/gzip Types

The application/zlib media type describes a block of data compressed using the zlib format. The registration lists binary encoding and describes the first byte as usually 0x78, with other listed possibilities.

The application/gzip media type describes data compressed using gzip. Its registration lists the first two bytes as 0x1f and 0x8b and the file extension as gz.

Use application/zlib for zlib data and application/gzip for gzip data. The RFC also lists byte patterns that can help identify each format.

§4Security Considerations

The RFC warns that compressed data may contain arbitrary binary data, including hostile executable code. Data claiming to use gzip or zlib may not actually follow those formats, and fields such as lengths or pointers may contain arbitrary values.

Applications should treat incoming data skeptically and consult the security sections of the underlying format specifications.

A file that claims to be compressed data may be malformed or harmful. Applications should check it carefully before using it.

§4References