Re: What we call "headers"

Poul-Henning Kamp <> Thu, 19 March 2020 16:48 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 3F2E93A0993 for <>; Thu, 19 Mar 2020 09:48:06 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -2.641
X-Spam-Status: No, score=-2.641 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HEADER_FROM_DIFFERENT_DOMAINS=0.249, MAILING_LIST_MULTI=-1, SPF_PASS=-0.001, T_SPF_HELO_TEMPERROR=0.01, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id OCPQkzBm5ohZ for <>; Thu, 19 Mar 2020 09:48: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 DAB443A0966 for <>; Thu, 19 Mar 2020 09:48:01 -0700 (PDT)
Received: from lists by with local (Exim 4.92) (envelope-from <>) id 1jEyHs-00023R-WA for; Thu, 19 Mar 2020 16:44:53 +0000
Resent-Date: Thu, 19 Mar 2020 16:44:52 +0000
Resent-Message-Id: <>
Received: from ([]) by with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from <>) id 1jEyHr-00022b-Jk for; Thu, 19 Mar 2020 16:44:51 +0000
Received: from ([]) by with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from <>) id 1jEyHp-0000O3-Lg for; Thu, 19 Mar 2020 16:44:51 +0000
Received: from ( []) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by (Postfix) with ESMTPS id 379071AF10C; Thu, 19 Mar 2020 16:44:37 +0000 (UTC)
Received: from (localhost []) by (8.15.2/8.15.2) with ESMTPS id 02JGiaXj017528 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NO); Thu, 19 Mar 2020 16:44:36 GMT (envelope-from
Received: (from phk@localhost) by (8.15.2/8.15.2/Submit) id 02JGiZdX017527; Thu, 19 Mar 2020 16:44:35 GMT (envelope-from phk)
To: Mark Nottingham <>
cc: HTTP Working Group <>, "Julian F. Reschke" <>, Roy Fielding <>
In-reply-to: <>
From: Poul-Henning Kamp <>
References: <>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-ID: <>
Content-Transfer-Encoding: quoted-printable
Date: Thu, 19 Mar 2020 16:44:35 +0000
Message-ID: <>
Received-SPF: pass client-ip=;;
X-W3C-Hub-Spam-Status: No, score=-4.9
X-W3C-Hub-Spam-Report: BAYES_00=-1.9, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, W3C_AA=-1, W3C_IRA=-1, W3C_WL=-1
X-W3C-Scan-Sig: 1jEyHp-0000O3-Lg c71573d1059ab39bb243a5bc095371a5
Subject: Re: What we call "headers"
Archived-At: <>
X-Mailing-List: <> archive/latest/37464
Precedence: list
List-Id: <>
List-Help: <>
List-Post: <>
List-Unsubscribe: <>

In message <>, Mark Nottingham wri

>A little while back we made some changes in http-core regarding 
>terminology and headers. This seems to have caused some confusion and
>comment, so I thought I'd summarise where I think we're at (Julian and
>Roy might want to chime in if they feel differently or want to add

I appreciate that you are trying to disambiguate the confusion brought
about by headers being put in trailers.

However, given that we have talked about trailers for 20+ years
now, yet they have never gained any serious traction, the simplest
and most efficient way to end the confusion is to do away with
trailers, so that headers only live in headers, as originally

The problems trailers were invented to work around, are barely
relevant these days, and almost universally handled with JS on the

We are not running out of headers, so trailers do not enjoy a
"insurance for the future" status like IPv6 did during its
twenty years of crossing of the desert.

KISS: Trailers must die.

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.