Re: Multiple Huffman code tables

I have no opinion on the benefits or not of defining better compression 
than HPACK/QPACK, but I do have an opinion on the inclusion of brands in 
the training set, like:


 > -1, '"Google Chrome";v="117", "Not;A=Brand";v="8", "Chromium";v="117"'

 > -1, '"Google Chrome";v="117.0.5938.89", "Not;A=Brand";v="8.0.0.0",
 > "Chromium";v="117.0.5938.89"'

 > -3, 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36
 > (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'


 > 0, '1P_JAR=2023-11-22-18; expires=Fri, 22-Dec-2023 18:46:19 GMT;
 > path=/; domain=.google.com; Secure; SameSite=none'

I assume that this kind of branded content reflects the reality of the 
market place, and that assigning short Huffman codes to it will indeed 
reduce the size of messages. But I think dedicating codes to such brands 
today is an error. Market shares and product names will change over 
time, making such optimizations ephemeral. But even if the optimizations 
were stable, optimizing for the existing set of brands will provide an 
advantage to these brands over newcomers, and thus contribute to 
increased concentration -- something that standards should certainly not 
encourage.

-- Christian Huitema

On 12/8/2023 8:06 AM, 姓名 wrote:
> HPACK/QPACK uses only one static table of Huffman coding, but the
> compression ratio can be improved by combining multiple tables. There is *no
> overhead* in data size due to the combination. Theoretically, two code
> tables can reduce the bit length of one code table by an average of one
> bit, since the two code tables itself has one bit of information. *This
> proposal especially reduces the token size increasing in recent years.* Let
> me know the link to the conclusions if this approach has been considered.
> The following is a comparison based on my proof of concept code. The
> leftmost number is the reduced bit size.
> 
> 'XPACK   comp. ratio request', 0.2533415841584158, 1.3393005138405436
> 'HPACK   comp. ratio request', 0.2471534653465347, 1.3282919612033537
> 0, 'accept'
> 0, 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7'
> 0, 'accept-encoding'
> 0, 'gzip, deflate, br'
> 0, 'accept-language'
> 0, 'ja,en-US;q=0.9,en;q=0.8'
> 0, 'cache-control'
> 0, 'max-age=0'
> 0, 'dnt'
> 0, '1'
> 0, 'sec-ch-ua'
> -1, '"Google Chrome";v="117", "Not;A=Brand";v="8", "Chromium";v="117"'
> 0, 'sec-ch-ua-arch'
> 0, '"x86"'
> 0, 'sec-ch-ua-bitness'
> 0, '"64"'
> 0, 'sec-ch-ua-full-version'
> 0, '"117.0.5938.89"'
> 0, 'sec-ch-ua-full-version-list'
> -1, '"Google Chrome";v="117.0.5938.89", "Not;A=Brand";v="8.0.0.0",
> "Chromium";v="117.0.5938.89"'
> 0, 'sec-ch-ua-mobile'
> 0, '?0'
> 0, 'sec-ch-ua-model'
> 0, '""'
> 0, 'sec-ch-ua-platform'
> 0, '"Windows"'
> 0, 'sec-ch-ua-platform-version'
> 0, '"10.0.0"'
> 0, 'sec-ch-ua-wow64'
> 0, '?0'
> 0, 'sec-fetch-dest'
> 0, 'document'
> 0, 'sec-fetch-mode'
> 0, 'navigate'
> 0, 'sec-fetch-site'
> 0, 'same-origin'
> 0, 'sec-fetch-user'
> 0, '?1'
> 0, 'sec-gpc'
> 0, '1'
> 0, 'upgrade-insecure-requests'
> 0, '1'
> 0, 'user-agent'
> -3, 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36
> (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'
> 0, 'x-client-data'
> -45, 'CKa1yQEIj7bJAQiltskBCKmdygEI5tTKAQieicsBCJahywEIhaDNAQjwsc0BCNy9zQEI38TNAQi1xc0BCLnKzQEI1dDNAQiR0s0BCIrTzQEIwtTNAQjJ1s0BCPnA1BUYwcvMARi4v80B'
> 
> 'XPACK   comp. ratio response', 0.25389886578449905, 1.340300870942201
> 'HPACK   comp. ratio response', 0.24155245746691867, 1.3184827478775605
> 0, 'accept-ch'
> -2, 'Sec-CH-UA-Arch'
> 0, 'accept-ch'
> -2, 'Sec-CH-UA-Bitness'
> 0, 'accept-ch'
> -2, 'Sec-CH-UA-Full-Version'
> 0, 'accept-ch'
> -2, 'Sec-CH-UA-Full-Version-List'
> 0, 'accept-ch'
> -2, 'Sec-CH-UA-Model'
> 0, 'accept-ch'
> -2, 'Sec-CH-UA-Platform'
> 0, 'accept-ch'
> -2, 'Sec-CH-UA-Platform-Version'
> 0, 'accept-ch'
> -1, 'Sec-CH-UA-WoW64'
> 0, 'alt-svc'
> 0, 'h3=":443"; ma=2592000,h3-29=":443"; ma=2592000'
> 0, 'cache-control'
> 0, 'private, max-age=0'
> 0, 'content-encoding'
> 0, 'br'
> 0, 'content-length'
> 0, '54188'
> 0, 'content-security-policy-report-only'
> -2, 'object-src 'none';base-uri 'self';script-src
> 'nonce-OqX2tRcsQ42YI77KwfGMfg' 'strict-dynamic' 'report-sample'
> 'unsafe-eval' 'unsafe-inline' https'
> 0, 'http:;report-uri https://csp.withgoogle.com/csp/gws/other-hp'
> 0, 'content-type'
> -1, 'text/html; charset=UTF-8'
> 0, 'cross-origin-opener-policy'
> 0, 'same-origin-allow-popups; report-to="gws"'
> 0, 'date'
> -2, 'Wed, 22 Nov 2023 18:46:19 GMT'
> 0, 'expires'
> 0, '-1'
> 0, 'origin-trial'
> -50, 'Ap+qNlnLzJDKSmEHjzM5ilaa908GuehlLqGb6ezME5lkhelj20qVzfv06zPmQ3LodoeujZuphAolrnhnPA8w4AIAAABfeyJvcmlnaW4iOiJodHRwczovL3d3dy5nb29nbGUuY29tOjQ0MyIsImZlYXR1cmUiOiJQZXJtaXNzaW9uc1BvbGljeVVubG9hZCIsImV4cGlyeSI6MTY4NTY2Mzk5OX0='
> 0, 'origin-trial'
> -83, 'AvudrjMZqL7335p1KLV2lHo1kxdMeIN0dUI15d0CPz9dovVLCcXk8OAqjho1DX4s6NbHbA/AGobuGvcZv0drGgQAAAB9eyJvcmlnaW4iOiJodHRwczovL3d3dy5nb29nbGUuY29tOjQ0MyIsImZlYXR1cmUiOiJCYWNrRm9yd2FyZENhY2hlTm90UmVzdG9yZWRSZWFzb25zIiwiZXhwaXJ5IjoxNjkxNTM5MTk5LCJpc1N1YmRvbWFpbiI6dHJ1ZX0='
> 0, 'p3p'
> -2, 'CP="This is not a P3P policy! See g.co/p3phelp for more info."'
> 0, 'permissions-policy'
> 0, 'unload=()'
> 0, 'report-to'
> 0, '{"group":"gws","max_age":2592000,"endpoints":[{"url":"https://csp.withgoogle.com/csp/report-to/gws/other"}]}'
> 0, 'server'
> 0, 'gws'
> 0, 'set-cookie'
> 0, '1P_JAR=2023-11-22-18; expires=Fri, 22-Dec-2023 18:46:19 GMT;
> path=/; domain=.google.com; Secure; SameSite=none'
> 0, 'set-cookie'
> -23, 'AEC=Ackid1QH6gVXB6Rn68KWRmRtOGSW1unAfUHYsxuZh3Zs8cyWCZdKy8vrhQ;
> expires=Mon, 20-May-2024 18:46:19 GMT; path=/; domain=.google.com;
> Secure; HttpOnly; SameSite=lax'
> 0, 'set-cookie'
> -19, 'NID=511=fx_DiN-XffVTX7QHZe7UgP5GQd0mx2HY9B0Hz6MgzEpOESnD8DldcSLyj-U6AHIo8t4-dcOKelciAyOK2j03GJE1r_31zKvXnECnKWvOQiFPO6mtTTaCZWqtn2x8m5lnzbB_CyUA-HzXz-Vw3TXC0eeW_AQlcu8CybBgyxtW5Kc;
> expires=Thu, 23-May-2024 18:46:19 GMT; path=/; domain=.google.com;
> Secure; HttpOnly; SameSite=none'
> 0, 'strict-transport-security'
> 0, 'max-age=31536000'
> 0, 'x-frame-options'
> -12, 'SAMEORIGIN'
> 0, 'x-xss-protection'
> 0, '0'
> 
> https://github.com/falsandtru/spica/blob/master/src/ascii.xpack.ts
> 

Received on Friday, 8 December 2023 20:35:29 UTC