Technical Summary
This document specifies a framework for creating WebSocket
extensions that add compression functionality to the WebSocket
Protocol. Extensions based on this framework compress the payload
of non-control WebSocket messages using a specified compression
algorithm. One reserved bit RSV1 in the WebSocket frame header is
allocated to control application of compression for each message.
This document also specifies one specific compression extension
using DEFLATE.
Review and Consensus
The compression extension has been discussed extensively within
the HyBi group almost since the beginning of the WebSockets
standardization process. Initially, the wg decided that in order to
maintain progress on WebSockets, it would not work on extensions
until the WebSocket spec was finished, so this waited for that to
happen.
The initial version of the compression spec was based on per-frame
compression, but at IETF84 in Vancouver (and as confirmed on the
mailing list), the HyBi WG decided to change from per-frame to
per-message compression. There has not been any notable
controversy about this document.
Chrome supports the old per-frame deflate draft, and they plan
to update it to the current proposal soon. pywebsocket supports
permessage-compression-04, but needs some changes to extension
parameter parsing to be compliant with -05. The Jetty web server
also supports an earlier version of per-message compression.
Personnel
Salvatore Loreto is the document shepherd.
Barry Leiba is the responsible Area Director.