Re: [httpapi] RateLimit Header client implementations

Darrel Miller <Darrel.Miller@microsoft.com> Sun, 10 January 2021 16:27 UTC

Return-Path: <Darrel.Miller@microsoft.com>
X-Original-To: httpapi@ietfa.amsl.com
Delivered-To: httpapi@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id D401F3A114D for <httpapi@ietfa.amsl.com>; Sun, 10 Jan 2021 08:27:12 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.351
X-Spam-Level:
X-Spam-Status: No, score=-2.351 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.25, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, HTML_MESSAGE=0.001, RCVD_IN_MSPIKE_H2=-0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=microsoft.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id BPKxX6F9XrFQ for <httpapi@ietfa.amsl.com>; Sun, 10 Jan 2021 08:27:11 -0800 (PST)
Received: from NAM06-DM3-obe.outbound.protection.outlook.com (mail-eopbgr640135.outbound.protection.outlook.com [40.107.64.135]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 090113A1146 for <httpapi@ietf.org>; Sun, 10 Jan 2021 08:27:09 -0800 (PST)
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=URvyt9NbCb7zoe3cI4wbtofb6a8nkHYxUOrtSc7ZfBTD8J6CKDktRmbtR28KcwWPHIV3AyOhwLeTpx+MZiluyizI2DbcKvEWvvLccLnN7LMpS7xUsvIZSmScLwl5Y1ayg6vjwMJ12RypPtTW7x7duRg1qezIzAQvFSNKSI9QhU3+BFxQfDP9ifx2l+r5I+FDyomw72Oo0jxRrbtv5uJtsTFrYqy7/NqycywpkgFieaZjT7zcC4bB9kt3mbrMnHGsXTrzdwx1/yylfyoiKxXxGTxRnRlWIA/vsAJyes4uTFkLmMiWBzhK27PLzQPjatXdLlPgVSNV750UVbmg6RENCA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=G1TAuc4F1HdOzWZl3kgRdYKQzB5NvcwnTDsvU2zSlPs=; b=au/wA2jnpubKTmA32aiAIt3q/CLMHehfIB98Wn/Eljn+SwasO9M8FeKzohG1izTZyVsPMn9djomTXGwweuSM3kmVnNRasvMNghdCCsQ2Xs/m6/h9Vdlq2TQuG6/3yXWZx3viPZzlfKQva0fze/cSgN/CreJT/yJD8++kxvX3nh5cLC2FGrRxAKCrShAN4cspZhweDra2bYE8hUc31evMHYvsVM74O5N+VkaUuDDcuji4XRrlUKBvz9rOS804Q5vXdNL6IwVHZ2bqtIFv0IiBgAJTfmVo0VR7//VqI2uacBNngZGnRSoK/HQ/A3EL7w/8MNUBAn8BjufLa2VnVWG+6g==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=microsoft.com; dmarc=pass action=none header.from=microsoft.com; dkim=pass header.d=microsoft.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=G1TAuc4F1HdOzWZl3kgRdYKQzB5NvcwnTDsvU2zSlPs=; b=KOmPdwQQ6deGu9Vg4n4MtU26s3VqN7ONkCh5CJVgvEy5Vf8WL6psV1rEzpRJSvdFmLnN5wuTsWmm3pZoJiple+KZmzLzqYJWwVwDhYzJD3Dw8XY2MQZlr48qX6dv5J0TC3jBDBwZ4atFWHYpjzf9kfK4kx2jP8xJlBIgnZURq/0=
Received: from (2603:10b6:5:1bf::13) by DM6PR00MB0751.namprd00.prod.outlook.com (2603:10b6:5:1be::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3787.0; Sun, 10 Jan 2021 16:27:02 +0000
Received: from DM6PR00MB0848.namprd00.prod.outlook.com ([fe80::7139:b869:d380:4aa]) by DM6PR00MB0848.namprd00.prod.outlook.com ([fe80::7139:b869:d380:4aa%5]) with mapi id 15.20.3794.000; Sun, 10 Jan 2021 16:27:02 +0000
From: Darrel Miller <Darrel.Miller@microsoft.com>
To: "amr@redhat.com" <amr@redhat.com>
CC: "darrel@tavis.ca" <darrel@tavis.ca>, "httpapi@ietf.org" <httpapi@ietf.org>, "robipolli@gmail.com" <robipolli@gmail.com>
Thread-Topic: [httpapi] RateLimit Header client implementations
Thread-Index: AQHW3lKxGhpPRJVD8kOy66GCWE4TNKoXg/eAgAGy0sqAAsSsAIAFIO02
Date: Sun, 10 Jan 2021 16:27:02 +0000
Message-ID: <DM6PR00MB0848E28FDF172BCC02F718E6F0AC9@DM6PR00MB0848.namprd00.prod.outlook.com>
References: <DM6PR01MB49370264EE9621D603FEAA81A3D70@DM6PR01MB4937.prod.exchangelabs.com> <CALmQWfiw+1DJ20=3A5JYNVziS9zvttEOTNFuEZE2y83AbZSrYQ@mail.gmail.com> <BY5PR00MB0837209B7CFF3687EFCD1580F0D19@BY5PR00MB0837.namprd00.prod.outlook.com>, <CALmQWfimVnaf4T+bhF2ZjHM8A6pSFsPurt2gxkN41zWfYkr89Q@mail.gmail.com>
In-Reply-To: <CALmQWfimVnaf4T+bhF2ZjHM8A6pSFsPurt2gxkN41zWfYkr89Q@mail.gmail.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
msip_labels: MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_Enabled=True; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_SiteId=72f988bf-86f1-41af-91ab-2d7cd011db47; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_SetDate=2021-01-10T16:27:03.823Z; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_Name=General; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_ContentBits=0; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_Method=Standard;
authentication-results: redhat.com; dkim=none (message not signed) header.d=none;redhat.com; dmarc=none action=none header.from=microsoft.com;
x-originating-ip: [74.15.147.35]
x-ms-publictraffictype: Email
x-ms-office365-filtering-ht: Tenant
x-ms-office365-filtering-correlation-id: 43864086-00f5-473f-dce5-08d8b5848f8a
x-ms-traffictypediagnostic: DM6PR00MB0751:
x-ld-processed: 72f988bf-86f1-41af-91ab-2d7cd011db47,ExtAddr
x-microsoft-antispam-prvs: <DM6PR00MB0751DCF8C7F83F794E2BAD90F0AC9@DM6PR00MB0751.namprd00.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:10000;
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: RCjpvfcxXVaR8zOni4qN+aQ3TtYEbLDMulraQFTcKmQKuUJRHNUcMXgG2EETp7Fm5ZU804q5GddGakNNED2rpUQfkhV70gUAKJdWFaFtd0PYM1rP8oM0lshp6dBhyuqe3klQ5GrvGZkamGVUt7VOZETmJWqgPT2CPkX1X2N7HgrEoWOepF+qN9BGaJXawD1xZs7qkLd0av9uXYozRqAT640PFsZxDqWvnXCvrX38NgsVLyA4ULtaqt98n+w1dWdOcKPqGqEufI9z3P0OMmhsOFfUge2/WcYJtm5JOcpN0Cqta2wuTXiFutQreaR+ZiEoChKlypvQzSxexWBSr6T0/y7Xm3JfWS4oG+gWJvTHvwxjRQ0iGuobcZJsYZSdmVRIDXNPzGe5KY7VC2kaXdMsYQ==
x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM6PR00MB0848.namprd00.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(366004)(376002)(39860400002)(136003)(396003)(346002)(66446008)(83380400001)(66556008)(8676002)(8936002)(19627405001)(66476007)(54906003)(7696005)(76116006)(9686003)(66946007)(186003)(82960400001)(82950400001)(8990500004)(5660300002)(55016002)(33656002)(478600001)(6506007)(26005)(2906002)(71200400001)(10290500003)(6916009)(4326008)(52536014)(86362001)(316002)(64756008); DIR:OUT; SFP:1102;
x-ms-exchange-antispam-messagedata: B256TtT3+j2nIsrHuDEect9YvgyR7DwAPQnswFtcEDNqfXtw4xlyZCrc/NIGkQq3wNUhT3CUMTc4yRSnxVwE/sIEIXMPa2fwkAxRri2q9X9yL70nYWhuELd6c1/RSEc183TwsA4YOzEdeykTawAAabXPyRJ9QpsjT2kkr+qdH8PGAdLS9OyygwAbom2cSMu5DF7FOzLIOeKZTqcmOnGdeq8w+n+BDogtsdM3ZfRpYpCgsAqThtnx/pPfZZ6HZD6BNvmfIbU4ze4pDA0U36THijp0WMdLkJJDdqkAcvm/WM87efiL5RGyDxmfVuxNLqZ7ybmefdaZ91kR2X70yTKjNmkYvdzcWjYxRttE4phwqPmN1881fdZYygYUj29ctvGhCD+BtVq0zhRdQA0dQ2n+eXPKNJ6/O/p72ChkCwnyPGJ7OeEnFcsQhI/2LDK8R2RHnGsPmgEIndyjd2aPBl6DzzVw3lge046+uw2kNjedP5nkg2aooOhWUXH2hxYQHS/04IB+DP3KBz6q32WGT8EqzWthbwVfXvJrCPCZzo2Ipi7RhEZ+R7DVBeDKQ5Qd5NmdhK5NaQ1pylj7X78Td0PXmUJUbQg0cLsskfIt/bKxy84WWVbkH50RGYq8Ll74nvlpmciw1d2YXgH2optvKKNeOuL4qDkTbRJyn8/q3adzJZCspQZcbIc8Eus4avwVVbyCHcItUdko++tFe50/KmDJ8SGEbAtntarxwmPpoAMx2Rq4XrlsR8zvw/IA9UmMuO8ZBZlpTbSf+UQ+XYgus4lw0J/9pk/kB5Csk8XPeFd6xP55ru9q42z+AqW5hijZEj6rtEa6rZff0TQxd0fkrXRIIoZrDDSlZ/OGbMjkzpsKTpW8tFT+8Kkwv+7os+D8GHL9UuGqeAoQfBuBdwYMREm2ffA2kxudy09WVkpgvJpcRBrnTG/CkE1OH85VFRDkvzpJN5jv52JPCsY5A+8+RT+dN2zo90YrxndntNFKQMrYVNg+x95QK6ASMgz6jaP3HSIxDQXaHZZeUsLJIUYWlp9jVLAPc1Tn6SyRXgtzqq80Ei0=
x-ms-exchange-transport-forked: True
Content-Type: multipart/alternative; boundary="_000_DM6PR00MB0848E28FDF172BCC02F718E6F0AC9DM6PR00MB0848namp_"
MIME-Version: 1.0
X-OriginatorOrg: microsoft.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: DM6PR00MB0848.namprd00.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 43864086-00f5-473f-dce5-08d8b5848f8a
X-MS-Exchange-CrossTenant-originalarrivaltime: 10 Jan 2021 16:27:02.0532 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 72f988bf-86f1-41af-91ab-2d7cd011db47
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: W4uD4eVbZedXLMR92JmiRfKQiJX2cm0rmDNmt4QIZS0509v8yvWS5kU10UWhLCLPQ9N+NOxWYKI+9G/buhYYwA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR00MB0751
Archived-At: <https://mailarchive.ietf.org/arch/msg/httpapi/PNCSGQzZAjnjzR7XNqryjWBV618>
Subject: Re: [httpapi] RateLimit Header client implementations
X-BeenThere: httpapi@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Building Blocks for HTTP APIs <httpapi.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/httpapi>, <mailto:httpapi-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/httpapi/>
List-Post: <mailto:httpapi@ietf.org>
List-Help: <mailto:httpapi-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/httpapi>, <mailto:httpapi-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sun, 10 Jan 2021 16:27:20 -0000

Alex,

Thanks for the additional context.
You are right, the immediate effect is the same. That said, you would be lacking some extra information about the nominal quota units and duration of the current window and the windows applying after this one is elapsed (ie. after recovery you'd have information about the expected rates, and those could also signal some sort of punitive policy), though that information might be next to useless in the current window since the intended effect is to stop traffic altogether for a while. Yet it would not work in a closely related scenario in which you would have some partial maintenance work but keeping the ability to serve clients in a degraded service manner -- that is, unless you kept giving clients shorter no-service windows interleaved with service responses as usual, hence generating a lot more wasteful traffic.
Would be useful to clarify that these additional headers are intended to support scenarios where rate limiting constraints applied by a service are dynamic over time?
 Yes, I believe that because there is no standardization there's been little to no effort in writing such adaptive code in generic HTTP clients, but this is pure speculation. I think it is very likely that most people doing so are the ones writing service specific clients, and in many cases they could be the same people that wrote the service in the first place, unless the service happens to see lots of usage across the board with many independent clients.
I look forward to seeing some feedback from implementers on the value derived from generic client code that handles these headers.

Darrel