Re: Multiple Huffman code tables

To all. Please read the proposal and the source code before replying with
assumptions.

2023年12月9日(土) 1:06 姓名 <falsandtru@gmail.com>:

> 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 22:03:04 UTC