The IMAP COMPRESS Extension
RFC 4978

 
Document
Type RFC - Proposed Standard (August 2007; Errata)
Last updated 2013-03-02
Stream IETF
Formats plain text pdf html
Stream
WG state (None)
Consensus Unknown
Document shepherd No shepherd assigned
IESG
IESG state RFC 4978 (Proposed Standard)
Telechat date
Responsible AD Chris Newman
Send notices to lemonade-chairs@ietf.org

Email authors IPR References Referenced by Nits Search lists

Network Working Group                                     A. Gulbrandsen
Request for Comments: 4978                        Oryx Mail Systems GmbH
Category: Standards Track                                    August 2007

                      The IMAP COMPRESS Extension

Status of this Memo

   This document specifies an Internet standards track protocol for the
   Internet community, and requests discussion and suggestions for
   improvements.  Please refer to the current edition of the "Internet
   Official Protocol Standards" (STD 1) for the standardization state
   and status of this protocol.  Distribution of this memo is unlimited.

Abstract

   The COMPRESS extension allows an IMAP connection to be effectively
   and efficiently compressed.

   Table of Contents

   1. Introduction and Overview .......................................2
   2. Conventions Used in This Document ...............................2
   3. The COMPRESS Command ............................................3
   4. Compression Efficiency ..........................................4
   5. Formal Syntax ...................................................6
   6. Security Considerations .........................................6
   7. IANA Considerations .............................................6
   8. Acknowledgements ................................................7
   9. References ......................................................7
      9.1. Normative References .......................................7
      9.2. Informative References .....................................7

Gulbrandsen                 Standards Track                     [Page 1]
RFC 4978              The IMAP COMPRESS Extension            August 2007

1.  Introduction and Overview

   A server which supports the COMPRESS extension indicates this with
   one or more capability names consisting of "COMPRESS=" followed by a
   supported compression algorithm name as described in this document.

   The goal of COMPRESS is to reduce the bandwidth usage of IMAP.

   Compared to PPP compression (see [RFC1962]) and modem-based
   compression (see [MNP] and [V42BIS]), COMPRESS offers much better
   compression efficiency.  COMPRESS can be used together with Transport
   Security Layer (TLS) [RFC4346], Simple Authentication and Security
   layer (SASL) encryption, Virtual Private Networks (VPNs), etc.
   Compared to TLS compression [RFC3749], COMPRESS has the following
   (dis)advantages:

   - COMPRESS can be implemented easily both by IMAP servers and
     clients.

   - IMAP COMPRESS benefits from an intimate knowledge of the IMAP
     protocol's state machine, allowing for dynamic and aggressive
     optimization of the underlying compression algorithm's parameters.

   - When the TLS layer implements compression, any protocol using that
     layer can transparently benefit from that compression (e.g., SMTP
     and IMAP).  COMPRESS is specific to IMAP.

   In order to increase interoperation, it is desirable to have as few
   different compression algorithms as possible, so this document
   specifies only one.  The DEFLATE algorithm (defined in [RFC1951]) is
   standard, widely available and fairly efficient, so it is the only
   algorithm defined by this document.

   In order to increase interoperation, IMAP servers that advertise this
   extension SHOULD also advertise the TLS DEFLATE compression mechanism
   as defined in [RFC3749].  IMAP clients MAY use either COMPRESS or TLS
   compression, however, if the client and server support both, it is
   RECOMMENDED that the client choose TLS compression.

   The extension adds one new command (COMPRESS) and no new responses.

2.  Conventions Used in This Document

   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
   document are to be interpreted as described in [RFC2119].

   Formal syntax is defined by [RFC4234] as modified by [RFC3501].

Gulbrandsen                 Standards Track                     [Page 2]
RFC 4978              The IMAP COMPRESS Extension            August 2007

   In the examples, "C:" and "S:" indicate lines sent by the client and
   server respectively. "[...]" denotes elision.

3.  The COMPRESS Command

   Arguments: Name of compression mechanism: "DEFLATE".

   Responses: None

   Result: OK The server will compress its responses and expects the
              client to compress its commands.
           NO Compression is already active via another layer.
          BAD Command unknown, invalid or unknown argument, or COMPRESS
Show full document text