Skip to content

Commit

Permalink
Bridge from headers
Browse files Browse the repository at this point in the history
  • Loading branch information
MikeBishop committed Apr 23, 2020
1 parent 29f7245 commit 337dfa0
Showing 1 changed file with 21 additions and 13 deletions.
34 changes: 21 additions & 13 deletions draft-ietf-quic-qpack.md
Expand Up @@ -104,6 +104,13 @@ when, and only when, they appear in all capitals, as shown here.

Definitions of terms that are used in this document:

HTTP fields:

: Metadata sent as part of an HTTP message. The term encompasses both header
and trailer fields. Colloquially, the term "headers" has often been used to
refer to HTTP header fields and trailer fields; this document uses "fields"
for generality.

HTTP field line:

: A name-value pair sent as part of an HTTP field section. See Section 4 of
Expand Down Expand Up @@ -167,26 +174,27 @@ x ...

# Compression Process Overview

Like HPACK, QPACK uses two tables for associating field lines to indices. The
static table ({{header-table-static}}) is predefined and contains common field
lines (some of them with an empty value). The dynamic table
Like HPACK, QPACK uses two tables for associating field lines ("headers") to

This comment has been minimized.

Copy link
@mnot

mnot Apr 24, 2020

Member

This is going to further confuse things, given that HTTP denotes that colloquial term to mean something else.

Why don't you actually spell out what it means, and/or refer to HTTP?

indices. The static table ({{header-table-static}}) is predefined and contains
common header field lines (some of them with an empty value). The dynamic table

This comment has been minimized.

Copy link
@mnot

mnot Apr 24, 2020

Member

So, you say "Header" here and "header and trailer" below -- again, a source of confusion / misreading.

({{header-table-dynamic}}) is built up over the course of the connection and can
be used by the encoder to index field lines in the encoded field sections.
be used by the encoder to index both header and trailer field lines in the
encoded field sections.

QPACK defines unidirectional streams for sending instructions from encoder to
decoder and vice versa.

## Encoder

An encoder converts a field section into a series of representations by emitting
either an indexed or a literal representation for each field line in the list;
see {{field-line-representations}}. Indexed representations achieve high
compression by replacing the literal name and possibly the value with an index
to either the static or dynamic table. References to the static table and
literal representations do not require any dynamic state and never risk
head-of-line blocking. References to the dynamic table risk head-of-line
blocking if the encoder has not received an acknowledgement indicating the entry
is available at the decoder.
An encoder converts a header or trailer field section into a series of
representations by emitting either an indexed or a literal representation for
each field line in the list; see {{field-line-representations}}. Indexed
representations achieve high compression by replacing the literal name and
possibly the value with an index to either the static or dynamic table.
References to the static table and literal representations do not require any
dynamic state and never risk head-of-line blocking. References to the dynamic
table risk head-of-line blocking if the encoder has not received an
acknowledgement indicating the entry is available at the decoder.

An encoder MAY insert any entry in the dynamic table it chooses; it is not
limited to field lines it is compressing.
Expand Down

0 comments on commit 337dfa0

Please sign in to comment.