Re: A mechanism to encode HTTP version information in DNS

Amos Jeffries <> Fri, 15 February 2013 05:49 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 097B621F8432 for <>; Thu, 14 Feb 2013 21:49:43 -0800 (PST)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -10.288
X-Spam-Status: No, score=-10.288 tagged_above=-999 required=5 tests=[AWL=0.311, BAYES_00=-2.599, RCVD_IN_DNSWL_HI=-8]
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id L-98WPYnMQJN for <>; Thu, 14 Feb 2013 21:49:42 -0800 (PST)
Received: from ( []) by (Postfix) with ESMTP id DAECC21F8430 for <>; Thu, 14 Feb 2013 21:49:41 -0800 (PST)
Received: from lists by with local (Exim 4.72) (envelope-from <>) id 1U6E96-0008Dr-7x for; Fri, 15 Feb 2013 05:47:40 +0000
Resent-Date: Fri, 15 Feb 2013 05:47:40 +0000
Resent-Message-Id: <>
Received: from ([]) by with esmtp (Exim 4.72) (envelope-from <>) id 1U6E8t-0008D1-V4 for; Fri, 15 Feb 2013 05:47:27 +0000
Received: from ([] by with esmtp (Exim 4.72) (envelope-from <>) id 1U6E8r-0008Ru-IC for; Fri, 15 Feb 2013 05:47:27 +0000
Received: from [] (unknown []) by (Postfix) with ESMTP id C8BCCE704F for <>; Fri, 15 Feb 2013 18:46:56 +1300 (NZDT)
Message-ID: <>
Date: Fri, 15 Feb 2013 18:46:52 +1300
From: Amos Jeffries <>
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:17.0) Gecko/20130107 Thunderbird/17.0.2
MIME-Version: 1.0
References: <>
In-Reply-To: <>
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit
Received-SPF: pass client-ip=;;
X-W3C-Hub-Spam-Status: No, score=-3.5
X-W3C-Hub-Spam-Report: AWL=-3.449, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001
X-W3C-Scan-Sig: 1U6E8r-0008Ru-IC 35adc085e295db9acb975b4c77faa4c3
Subject: Re: A mechanism to encode HTTP version information in DNS
Archived-At: <>
X-Mailing-List: <> archive/latest/16608
Precedence: list
List-Id: <>
List-Help: <>
List-Post: <>
List-Unsubscribe: <>

On 15/02/2013 9:16 a.m., Phillip Hallam-Baker wrote:
> Encoding HTTP version information in DNS is easy if you don't 
> particularly care about using DNS properly or want to do anything more 
> than encode HTTP version information.
> Doing it well gets rather more complex. A DNS query costs a round trip 
> so you would ideally like to make it pay. Also the process of 
> deploying DNS records takes some time and it is better to reuse an 
> existing record but only if that will not create ambiguity.
> Looking again at the URI record, I think that we could use it to 
> provide a HTTP version flag and other useful features in the DNS. In 
> particular we can use the URI record to effect a HTTP redirect in DNS 
> (a UDP round trip) rather than require a TCP round trip. It also 
> provides for fault tolerance and load balancing and works well with 
> Web Services.

One small note on this assertion:
   FQDN are capable of being anything up to 256 octets long *per-label*. 
When the FQDN is greater than 250 octets or so this will add both a UDP 
round trip plus a TCP round trip, on top of the final connection setup 
round trip. This may not seem a critical point, but we are already 
encountering web sites and services with >64 octet FQDN in public 
traffic which is causing TLS certificate issues.

That asside, I am liking this proposal better than any of the earlier 
DNS proposals. I can forsee support from Squid being implemented if this 
is selected to go ahead.