Re: Genart last call review of draft-ietf-httpbis-header-structure-18

David Schinazi <> Tue, 05 May 2020 20:49 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 4615D3A0AB6 for <>; Tue, 5 May 2020 13:49:07 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -2.749
X-Spam-Status: No, score=-2.749 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HEADER_FROM_DIFFERENT_DOMAINS=0.249, HTML_MESSAGE=0.001, LOTS_OF_MONEY=0.001, MAILING_LIST_MULTI=-1, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=unavailable autolearn_force=no
Authentication-Results: (amavisd-new); dkim=pass (2048-bit key)
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id 3mg3kRV6YQTp for <>; Tue, 5 May 2020 13:49:02 -0700 (PDT)
Received: from ( []) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by (Postfix) with ESMTPS id 8D0C83A0AAD for <>; Tue, 5 May 2020 13:49:02 -0700 (PDT)
Received: from lists by with local (Exim 4.92) (envelope-from <>) id 1jW4S7-0001HD-3H for; Tue, 05 May 2020 20:46:07 +0000
Resent-Date: Tue, 05 May 2020 20:46:07 +0000
Resent-Message-Id: <>
Received: from ([]) by with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from <>) id 1jW4S5-0001GN-TX for; Tue, 05 May 2020 20:46:05 +0000
Received: from ([2a00:1450:4864:20::144]) by with esmtps (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from <>) id 1jW4S3-00083W-Nd for; Tue, 05 May 2020 20:46:05 +0000
Received: by with SMTP id u4so2514599lfm.7 for <>; Tue, 05 May 2020 13:46:03 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=wgMz0QmMv7gjSVWjKVqs1iJtPcK590dkcddyTkA9SdI=; b=SgdiGb4lvcW0bJsozn4rX2U9HeLO0DNjHz/5soIfkKsRpWO8IOeHieD3c0pnXCqtUG 4k/k2QJVPCtgE2Bn0VflDgMjWGie07fHKiQNizSL6RwGdxWzxvg9dIXIpP3gjI/KE0me dbXeM3Crj+2LpWdoNcSt6xKETRRotjea9k9AhTRWra0J2JHPydtg+8q+HxKPck/jaa+j OOKIdCWew4i+0QpXlaSPphSJ/xUMDQA6CdtneNIgxsAtepKtLgWz6JCM0tvg5YL477hn 7ok78aVek/NKpKsoLJcLc52YbhAwHQwYh78jCjXXTnCAiG7OAYd5fvwFSUgC1yx/UqbZ 9XsA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=wgMz0QmMv7gjSVWjKVqs1iJtPcK590dkcddyTkA9SdI=; b=XlgLxG9vYid+BfjBWOxYfF8RcfWu8lmZ9zl3uo/RHkaUsa5Z/8RyaZifW5eezY4u99 0+bBiw3b05fLSK2xHUkwWsHnw6Twx2i/yWOZA69klrzoNvPeLHJbxCIMFk1eiX6KKpqm sK8OKR3t5jEE6KNDWzbIfn6wehzxpExNsuGMwJVyxhIQGYEALp6JLWfRWWTm+8tJP+RA kpuXVYEedkfbkg8+CA2398TixqDCwIwCF3pID/70gWkNH85pkYMcvPPyvhYnrRTXAVIa b5XTYNdFcwMyAq9xGZPkShGf1X4wqNuetsgq/Zv9B0PAUG3GPQ4XJ4fM3y0DLQqpmXby 9j+w==
X-Gm-Message-State: AGi0PuYEkGEbRRgCRSfgR2LmQmzKel05FsINgomK4qGDNASTM6tJqfoN U4MHra+jK9L2dcXOC195GR2cBvgFZ0CReehkcGU=
X-Google-Smtp-Source: APiQypLrO9ROY+Fve/0UL7dKLWzufI9SpgKmnAFqr2EunEbRL5EU7iO0SCAE0x2jwk7q0io59Ycd7cPvBEtHmX0t51c=
X-Received: by 2002:ac2:4113:: with SMTP id b19mr2871828lfi.40.1588711551917; Tue, 05 May 2020 13:45:51 -0700 (PDT)
MIME-Version: 1.0
References: <> <> <> <>
In-Reply-To: <>
From: David Schinazi <>
Date: Tue, 5 May 2020 13:45:40 -0700
Message-ID: <>
To: Poul-Henning Kamp <>
Cc: Mark Nottingham <>,, Tommy Pauly <>,, Barry Leiba <>, Barry Leiba <>, gen-art <>,, HTTP Working Group <>,
Content-Type: multipart/alternative; boundary="000000000000b3e3d605a4ecbb65"
Received-SPF: pass client-ip=2a00:1450:4864:20::144;;
X-W3C-Hub-Spam-Status: No, score=-5.1
X-W3C-Hub-Spam-Report: BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, LOTS_OF_MONEY=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, W3C_AA=-1, W3C_DB=-1, W3C_WL=-1
X-W3C-Scan-Sig: 1jW4S3-00083W-Nd e8bd94be9197bb3363cab06fd5cf538d
Subject: Re: Genart last call review of draft-ietf-httpbis-header-structure-18
Archived-At: <>
X-Mailing-List: <> archive/latest/37570
Precedence: list
List-Id: <>
List-Help: <>
List-Post: <>
List-Unsubscribe: <>

Thanks for going into detail on this Poul-Henning!

In my use-case the numbers are identifiers with some arithmetic properties
(ordering, and whether they're even or odd) so I think they fit into the
class D
you described. I think a byte sequence with defined endianness and size
restriction should do the trick. That or just saying "if you reach 10^15
just restart your HTTP/3 connection"... I've filed an issue on my own draft
to keep
track of this <>.

Thanks again,

On Tue, May 5, 2020 at 1:29 PM Poul-Henning Kamp <> wrote:

> --------
> In message <CAPDSy+4y9ZZ-f=
>>gt;, David Schinazi
> writes:
> >Sounds good. I was mainly curious because I defined a sh-integer in one of
> >my drafts for a value that can in theory go up to 2^62-1, and I wonder if
> >it's worth the added complexity to support values between 10^15 and
> 2^62...
> Let me chime in here, as the 10^15 thing is largely my "fault".
> Without resorting to "there are N kinds of people" jokes, there are
> essentially four classes of numbers:
> A) Normal numbers.
> B) Scaled numbers
> C) Identifying numbers
> D) Cryptographic numbers
> The 10^15 has historically been more than fine for class A, people
> generally hate when there are more than 10 digits in a number, this
> we know this because AT&T did a LOT of research on this, back when
> people did a lot more with numbers by hand than we do today.
> In class B people deal with huge numbers by downscaling:  Millions,
> Trillions, GigaBytes and PetaBytes.  Nobody really cares if the
> stimulus was or dollars, so
> sawing of the right hand side is a good way to make numbers manageable,
> at the cost of suffixing multiplier: $125M
> In class C we have numbers which are used to enumerate things,
> customer numbers, passport numbers and so on.  By their nature these
> numbers are not subject to arithmetic, but mainly because of the
> punched cards and the numeric keypad, using digits for encoding
> them is traditional.  I would recommend that these be encoded either
> as byte sequences, or if they are important for manual debugging
> as strings.
> Class D is strictly speaking not only cryptographic numbers, but
> again, these are not usually subject of arithmetic, but in difference
> from class C they have a fundamental numeric nature, and there
> may be some mathematical operators which apply to them, for instance
> ordering.  For these, I would recommend using fixed size
> byte sequences with a defined endianess.  But again:  If they are
> important to human debugging, for instance being able to tell
> which is larger/smaller, it may make more sense to put them
> in a string with a suitable radix.
> Poul-Henning
> --
> Poul-Henning Kamp       | UNIX since Zilog Zeus 3.20
> phk@FreeBSD.ORG         | TCP/IP since RFC 956
> FreeBSD committer       | BSD since 4.3-tahoe
> Never attribute to malice what can adequately be explained by incompetence.