ietf-corpus

rfc-2088

IMAP4 non-synchronizing literals

J. Myers
date1997-01 streamLegacy statusPROPOSED STANDARD pages2 canonicalhttps://www.rfc-editor.org/rfc/rfc2088 doi10.17487/RFC2088
The Internet Message Access Protocol [STANDARDS-TRACK]

obsoleted by

updated by

Extracted elements (11)

design-rationale §1

IMAP4 requires the client to wait for a server command continuation request between sending the octet count and the literal string data. The non-synchronizing literal eliminates this network round-trip, improving efficiency for client-to-server communication.

email

interoperability-note §3

Non-synchronizing literals may only be used with servers that advertise LITERAL+ capability; the IMAP4 synchronizing literal (without '+') remains valid and must be used with servers that do not support the extension.

email

normative-requirement §3 MAY

A server MAY still process commands and reject errors on a line-by-line basis, as long as it checks for non-synchronizing literals at the end of each line.

email

normative-requirement §3 MUST

If the server does not advertise the LITERAL+ capability, the client must use synchronizing literals instead of non-synchronizing literals.

email

normative-requirement §3 MUST

The protocol receiver of an IMAP4 server must check the end of every received line for the pattern `{octet-count+}` immediately preceding the CRLF, which signals a non-synchronizing literal.

email

normative-requirement §3 MUST NOT

The server does not generate a command continuation request in response to a non-synchronizing literal, and clients are not required to wait before sending the octets.

email

normative-requirement §3 MUST

Upon detecting a non-synchronizing literal, the server MUST treat the specified number of following octets and the following line as part of the same command.

email

protocol-element §3

The LITERAL+ capability is advertised by IMAP4 servers in response to the CAPABILITY command to signal support for non-synchronizing literals. Clients must check for this capability before using non-synchronizing literals.

email

security-consideration §7

There are no known security issues with the LITERAL+ extension.

security, email

wire-format §3

A non-synchronizing literal is distinguished from a synchronizing literal by a plus sign ('+') inserted between the octet count and the closing brace: `{number+}CRLF *CHAR8`. The synchronizing form lacks the plus sign.

email

wire-format §4

Formal syntax: `literal ::= "{" number ["+"] "}" CRLF *CHAR8` where number represents the count of CHAR8 octets. The optional '+' distinguishes non-synchronizing from synchronizing literals.

email