Re: [Last-Call] Genart last call review of draft-ietf-httpapi-link-template-02

Christer Holmberg <christer.holmberg@ericsson.com> Mon, 22 May 2023 07:48 UTC

Return-Path: <christer.holmberg@ericsson.com>
X-Original-To: last-call@ietfa.amsl.com
Delivered-To: last-call@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 5F932C151980; Mon, 22 May 2023 00:48:02 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.099
X-Spam-Level:
X-Spam-Status: No, score=-2.099 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_PASS=-0.001, URIBL_DBL_BLOCKED_OPENDNS=0.001, URIBL_ZEN_BLOCKED_OPENDNS=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=ericsson.com
Received: from mail.ietf.org ([50.223.129.194]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id LNgZRWhgJMZb; Mon, 22 May 2023 00:47:58 -0700 (PDT)
Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05on20623.outbound.protection.outlook.com [IPv6:2a01:111:f400:7e1b::623]) (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 28184C151557; Mon, 22 May 2023 00:47:57 -0700 (PDT)
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ZWp/EHoaYcv94bgOsFU8cJ25Af1NJdGhEuugBNQ1y4aOL2fI8p2RM37JuQg3peulX/wMu1g7PeUmn7H5cYj3nqiqPdLBfE5+z/DxxpfLcWCp/BS4rLqpqzE/rfi1NlYWJmDtRcSvqaCIBvx7fb9NZ6K3zRvaA1WKV6L0Krw+r3IFuZ3EaUHXdHA/n3dkyVBVfus6UlD5LHkYapWU8FPr79iP7/5JT7I41VG6bwF4FnfD0RobzHc2qIO454Naj1bjMUtvbWqv8R3U6Ro6EQUfCxSBOjOGyGH8Hsfjj5lVTl6uQjAWsYsA5syC7FZ0DPxmIz9DcwBo79E0TuwMf7vy/g==
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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=BHkAw5+E2Mrjk1upQfJ7nrq0+OmI2fMcxRyrhI+291M=; b=BuXtWeMpRDefFP4gZZGxKC+dVu/v+N/JlmF2W5S+tKze3lu6w8NQhZUVsCKT1+gswyTcgtvwXCMUMaSrucsBUTJyWKdUhmstgOUypRpouPacEe0JGSURj8Us9S6FVZpvn9T2EVEv0v3zb5TtkhIpNXxQrfaxE8G35Co00H5A8ODmY9RTuzLfnL5yMfpQl65PxgbnXdGjYJZo0WTkjVbynS3GjRjxd59vbwxSvKD6vxSEKvi7pEOF8ZmH2O8dTXVos5Xt2EmyIBP3iKYot+ikt1Pb240GSnu32pTPbaYJn9KaFbndLeTd2zLh18+E+89Fp8VHtMfdj0h7iGA7LWy4CQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=ericsson.com; dmarc=pass action=none header.from=ericsson.com; dkim=pass header.d=ericsson.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ericsson.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=BHkAw5+E2Mrjk1upQfJ7nrq0+OmI2fMcxRyrhI+291M=; b=WLpBL25lEFBb3ZLFAYOQyUC5Ze0NOnhRbsDmcSPQMxU96zKU6NEOuAwg8Ze5cOfq7cmulKKE30fYjUkQwm1tn1ZtsKJ5k5BQQeF2v+jhcnPqeXW1BvH4dB0N1NH4/QpUVRr1pmOBfzZsjXvcUilm2vT3LuY5ruwUzdPD2eBcwjw=
Received: from HE1PR07MB4441.eurprd07.prod.outlook.com (2603:10a6:7:9f::27) by VI1PR07MB9971.eurprd07.prod.outlook.com (2603:10a6:800:1e2::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6411.28; Mon, 22 May 2023 07:47:51 +0000
Received: from HE1PR07MB4441.eurprd07.prod.outlook.com ([fe80::8542:2a28:6718:b1b4]) by HE1PR07MB4441.eurprd07.prod.outlook.com ([fe80::8542:2a28:6718:b1b4%7]) with mapi id 15.20.6411.028; Mon, 22 May 2023 07:47:51 +0000
From: Christer Holmberg <christer.holmberg@ericsson.com>
To: Mark Nottingham <mnot@mnot.net>
CC: "gen-art@ietf.org" <gen-art@ietf.org>, HTTP APIs Working Group <httpapi@ietf.org>, Last Call <last-call@ietf.org>
Thread-Topic: Genart last call review of draft-ietf-httpapi-link-template-02
Thread-Index: AQHZiYk+/vdkoSTvK0uTtDhdp6KeZa9hdyHQgAAPj4CAAGvyUIABK5WAgALMIZA=
Date: Mon, 22 May 2023 07:47:51 +0000
Message-ID: <HE1PR07MB4441EFC69B1BDFED17CDFFE293439@HE1PR07MB4441.eurprd07.prod.outlook.com>
References: <168424064858.44084.3692769234533396629@ietfa.amsl.com> <34AA44A9-B351-4798-8920-90724F600D8D@mnot.net> <HE1PR07MB4441A4329BA51DC42C9796DE937C9@HE1PR07MB4441.eurprd07.prod.outlook.com> <C5848939-4628-4760-B1B7-ECB7105B866A@mnot.net> <HE1PR07MB4441C788DC81233E50441297937C9@HE1PR07MB4441.eurprd07.prod.outlook.com> <EE952FBC-B0A4-4818-A288-1B320B469D5E@mnot.net>
In-Reply-To: <EE952FBC-B0A4-4818-A288-1B320B469D5E@mnot.net>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: yes
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=ericsson.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: HE1PR07MB4441:EE_|VI1PR07MB9971:EE_
x-ms-office365-filtering-correlation-id: 1bd99764-de3b-4a61-b5d7-08db5a98d825
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: /y06ugJHElU0zUbSVqxxgpVDsTmdVlwRBHYU7C7x25aGCDMySolMgRpBWvVW9nB6eqAKcC9Q93DUAy2vnGs9w/ZtnBq3/ed0pESSUUntYG9qAdA9YjscAUJ7g7AdFN4vSAPg/daOheMIHWNT9SRkIyeRKA22V6QdHeWBdGjg+EfAkjGKF1gNYmojHQE6jV/M5UUMfMLmtXYZYHFkVWeCYiwPIbBmq/YJfhtUnJxtNmbTQmGrb1k5itBP4oZYSsma+WIJqoCgZAaAiIhPdn/pYNejv+TI1bmp6OJr3g3mMDLe1xyd6x/zfBCw+Ro93PdnK5NwtG97YW8A6hMl4oE8+mkuxNCn/7lsSpqZGCIF2mC2N9Fy9//2bvtPU0PNJ88yAopxAqEruoZmjBK9jCXWQ1BNWAsVSEhIKIAueFK79sKJ6kHN7WqRruwDpeMoJ/KktwIQpgFsTH7l8VKTCIwsFXtlq5p245+isumeduGf9RxZyYFFWFgbUzQ9No6R9i5F6yElQ7vEoY62j1+m2V5W5sByVns4UPXkofk7W3YzT5BXOypOdtAqE5sCb2HfQH7DZ1sCdzsH5UNasT2FxzGs4RNI+Uby5RS7l7ZfAm/wTDd6SfaOSPuhSKC0U1Y9xxhF
x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:HE1PR07MB4441.eurprd07.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230028)(4636009)(366004)(396003)(136003)(346002)(376002)(39860400002)(451199021)(8676002)(8936002)(5660300002)(52536014)(44832011)(186003)(26005)(9686003)(6506007)(83380400001)(86362001)(122000001)(38100700002)(99936003)(82960400001)(38070700005)(41300700001)(7696005)(33656002)(71200400001)(55016003)(66476007)(66556008)(66946007)(76116006)(66446008)(64756008)(316002)(6916009)(4326008)(478600001)(54906003)(2906002); DIR:OUT; SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: bh46xdzgb0ZlnNGZSS2c2wRjmFx/ffn4+8P4Q5DO1LYhdTVQteI6han2+57sKl2DuxkDOgcP2gQIu9BDv7kPoCMwfImE6n+kTnH/cl2/OWi4W237XrvXLwgb0+X/Xb/2pt1FccC3MGuwPHxJS6iCxzPq6E4lyhNi2+jM6W/vv7gAT0kuCsUClHIjO3BbtfedliBqNiy+rrYhvWb1BB9YT+csxE6B6VTTLON0O9mKKW6W5t5NYkXA5d1QBJTAerxO6N8L4kJLzpIYN7VjeaH3YpIdqIqkzIgU4S3uyORTWRh8x+MqgISdhScZ2vsYnJAiqDnQtNiSb1Mxc3BWfFQkSAfaAgLTOnFNwAO/HaI+Yc2JUAtaoFge2L7kHB/AK5WFmSrmvcdJ/+als+FV9latByYatTwrk8RhTlfdrgurvskV9E9MQXG/VfLDoxgP4vBeoFIvKLsYFO3xoUI2e3IDx/kUa0THrS0KRcIVmEBJ8db3r0xP08Vo/aIn93ddWypvLlpriYqvzGtgEPO4prkE8rmDMhvYbhMeBUsp52oUYxqucJ6gMOvTYvHFNjt2uFAvguDcmAEVIpzWBRthT6P1gqeNwwgtwYkc5u/qTQqBMJ3W2qSVCpwrHFBl0jRZfsAmeD8ODBE10V5AOaWnz8z0tIV5PLGC5claJpE5QV5ig2WsH2mkVQParPgto8FaMX282mJgR+KA/xfef65IpBqlLMgqmstHdIGcf5rZWmKX7z+cOnsfOtHZTVzsU1epWXkjnYKLJisk7uwAIxE2mPQO9Zv74q8ZHpoxRBL4rQvXgKjkTlHTfdrvlLeNcqGwkgrvhHoBep5id5b4bNdP1DCBSc1KyXOn9lzmd3AG6dpSw0sBMmQyTSfljjLnnj7ZXULD7H2OEa/qPfbDW/88PqVGUzfVwmiSQ8QpjBFcynyXPEv63+b0tFkzNqiU2UxVLRR/TW6Mdv+lQuyvuG62CIz7Lp4oZr9rHrDqAKASfcLkfPUg7Uq2QltOpPPnAzDLiqB/qQ7EsK+JcQWCN6B4I/euudLb1gjv3Y598bBneqn0MAZTTI16XhkB3HQ0wKmnvOJMfCRUA8t3BxgcxFcwo1bI9hKrNkCCkIUft0n7Srli87XKPXcAZQg1NfQqDiP6yO1kZmzSrLgZRWKb63CzNIYJUntGvLwX6SR2fczMFLwlaDC8i0j/rKGgn1Bl7NhmPAeVGDA/rniYFtrlT0OvxaiZQ2uILcetkA/PjkfbTZQ1GcAzjyoTLy8Rwe/1ux+sUOX6Xg6WaSUQT0S2yC7cffb1TDdcMBuaX8/4BjfoZzP017GWnL4acpGoPk7Ld/iyxIE85dYNUeXxspun8yWgimvoudb3MDQ2ig02DTeF6L4uh9GdEtCPRxuzuSQ4Sus5QSLdX4Wi5KuzTd93jtnSqVOiJ/U6VhXXjfVEXPBidbTWfD1ZWVRptY2B4uTynJ+pJa+IFawxcrfqVI+Yv2uTllC4Hnz1qiX6sLKhBqMyS54U47lntSkrttTNcC4lPyd7ABMUaLCTAVVOKMfUaHrQtxpLxwHWP0KPE7mp+KfHPqmmXWlVVTBY1DNiEZFOcBeo65GBm1C9dolXwzZWMQ/dJkDCLw==
Content-Type: multipart/signed; protocol="application/x-pkcs7-signature"; micalg="SHA1"; boundary="----=_NextPart_000_0066_01D98C9A.DA3F3D10"
MIME-Version: 1.0
X-OriginatorOrg: ericsson.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: HE1PR07MB4441.eurprd07.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 1bd99764-de3b-4a61-b5d7-08db5a98d825
X-MS-Exchange-CrossTenant-originalarrivaltime: 22 May 2023 07:47:51.0889 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 92e84ceb-fbfd-47ab-be52-080c6b87953f
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: ogjus4YlCgFTAtK0LmySAg2zW/b3eXy1AY1cJZg14ie+cb6TLxboHzBsR4kNPYvfjnxfg0lm9PCA+KuVUF/PkB9c6OyUYOCadmonQLFoPLQ=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR07MB9971
Archived-At: <https://mailarchive.ietf.org/arch/msg/last-call/PLmqWRfA1RcaIQva4oXFFERYDcY>
Subject: Re: [Last-Call] Genart last call review of draft-ietf-httpapi-link-template-02
X-BeenThere: last-call@ietf.org
X-Mailman-Version: 2.1.39
Precedence: list
List-Id: IETF Last Calls <last-call.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/last-call>, <mailto:last-call-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/last-call/>
List-Post: <mailto:last-call@ietf.org>
List-Help: <mailto:last-call-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/last-call>, <mailto:last-call-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 22 May 2023 07:48:02 -0000

Hi Mark,

>>> Ah. The reason is that allowing any type would require creating a
>>> mapping of current values to SF types, and there are just too many
>>> potential (and undocumented) values already in use to do this.
>>
>> I don't think that is true. Just because the Parameter syntax allows
>> values to be encoded sf-string, sf-token, sf-boolean etc it doesn't
>> mean that you have to map each value (existing or new ones) to each of
>> those encodings. If a value is defined as a String, then it has to be 
>> encoded as a sf-string.
>
> Consider an implementation that wants to serialise a link relation that has 
> a 'foo' Parameter
> that it has no special knowledge of. If the value is "bar", that's very 
> straightforward -- it will
> successfully serialise as a Token. However, consider the value "1.2.3.4" --  
> it will fail parsing, because
> it looks like an Integer or Decimal to the parser, but it isn't.

It will not look like an Integer or Decimal to the parser: if the value is 
surrounded by quotes, it is a String. Tokens, Integers and Decimal do not have 
quotes.

Example-Header: "1234"    	// sf-string
Example-Header: 1234		// sf-integer

Example-Header: "foo123"	// sf-string
Example-Header: foo123	// sf-token

Example-Header: "1.2.3.4"	// sf-string
Example-Header: 1.2.3.4	// NOT a valid value, as sf-decimal only allows one 
dot

Example-Header: "1.2"		// sf-string
Example-Header: 1.2		// sf-decimal


>Of course, we could specify something like "try to parse it as a Structured 
>Value; if serialisation
>fails, serialise it as a String." That strategy might be workable, but it 
>creates a lot of complexity -- 
>at runtime when you have to test the value by running code, and when values 
>are handled, because
>now they could come in multiple forms.
>
>Always serialising as a string recognises that, from the standpoint of the 
>Link header field, the
>value's type is opaque.

In general, if a parser is not able to determine the encoding without 
"testing" values etc, the syntax is bad. But, in the case of structured field 
values that is not the case: the parser will always know if a value is 
sf-string, sf-integer, sf-decimal etc.

Regards,

Christer