Re: New Version Notification for draft-divilly-status-555-00.txt

Colm Divilly <colm.divilly@oracle.com> Thu, 26 March 2020 12:32 UTC

Return-Path: <ietf-http-wg-request+bounce-httpbisa-archive-bis2juki=lists.ie@listhub.w3.org>
X-Original-To: ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com
Delivered-To: ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id C97993A08E7 for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Thu, 26 Mar 2020 05:32:17 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.214
X-Spam-Level:
X-Spam-Status: No, score=-4.214 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, HEADER_FROM_DIFFERENT_DOMAINS=0.249, HTML_MESSAGE=0.001, MAILING_LIST_MULTI=-1, RCVD_IN_MSPIKE_H2=-1.463, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=oracle.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 xxVjO28dx0IM for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Thu, 26 Mar 2020 05:32:15 -0700 (PDT)
Received: from lyra.w3.org (lyra.w3.org [128.30.52.18]) (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 855B53A085B for <httpbisa-archive-bis2Juki@lists.ietf.org>; Thu, 26 Mar 2020 05:32:14 -0700 (PDT)
Received: from lists by lyra.w3.org with local (Exim 4.92) (envelope-from <ietf-http-wg-request@listhub.w3.org>) id 1jHRcU-0004tb-9A for ietf-http-wg-dist@listhub.w3.org; Thu, 26 Mar 2020 12:28:22 +0000
Resent-Date: Thu, 26 Mar 2020 12:28:22 +0000
Resent-Message-Id: <E1jHRcU-0004tb-9A@lyra.w3.org>
Received: from mimas.w3.org ([128.30.52.79]) by lyra.w3.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from <colm.divilly@oracle.com>) id 1jHRcS-0004sl-B5 for ietf-http-wg@listhub.w3.org; Thu, 26 Mar 2020 12:28:20 +0000
Received: from userp2120.oracle.com ([156.151.31.85]) by mimas.w3.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from <colm.divilly@oracle.com>) id 1jHRcO-0002AG-Hp for ietf-http-wg@w3.org; Thu, 26 Mar 2020 12:28:20 +0000
Received: from pps.filterd (userp2120.oracle.com [127.0.0.1]) by userp2120.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 02QCP1BX191447; Thu, 26 Mar 2020 12:28:01 GMT
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : message-id : content-type : mime-version : subject : date : in-reply-to : cc : to : references; s=corp-2020-01-29; bh=04jK+TpSm0cHFLILW8pbWf1UCvcs+Gk4eskngOOucT4=; b=EWszpc3Xz8Ep0BbP6s/nSm6/b5xxaL+kCOgbDe4079GICOLMsoKD2ZFxC4RQx+MJ9GW5 yzcFF8VDyMWg1CARNVn639nV13NzoQXDGH670tIh7TrVKT75VJAmiImp/rdMc7+ZqCLm Z7vPed3eiI4MzCQXS4ABuJTl03iMWWP1Mk+gx+w/yf2Z4l10UcIkYfiwQ1JxEG7F8MiK kR4GqDkqa8h37Sc63hhAEUHwf7UZm4LftyTeCsJPwghpRskCquA1q3ixK50w+acJ+HCz 14PU7qiCKhCKALPphQtv0w0V9zdjKaZ1Mvjkb4iSxiWJlAnpSZSXuy5yqhordmvYCcJD kg==
Received: from aserp3030.oracle.com (aserp3030.oracle.com [141.146.126.71]) by userp2120.oracle.com with ESMTP id 300urk06g3-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 26 Mar 2020 12:28:00 +0000
Received: from pps.filterd (aserp3030.oracle.com [127.0.0.1]) by aserp3030.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 02QCRukC048714; Thu, 26 Mar 2020 12:28:00 GMT
Received: from aserv0122.oracle.com (aserv0122.oracle.com [141.146.126.236]) by aserp3030.oracle.com with ESMTP id 3006r8cth4-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 26 Mar 2020 12:27:59 +0000
Received: from abhmp0009.oracle.com (abhmp0009.oracle.com [141.146.116.15]) by aserv0122.oracle.com (8.14.4/8.14.4) with ESMTP id 02QCRwnA027121; Thu, 26 Mar 2020 12:27:59 GMT
Received: from [10.74.116.195] (/10.74.116.195) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Thu, 26 Mar 2020 05:27:57 -0700
From: Colm Divilly <colm.divilly@oracle.com>
Message-Id: <6F5864DF-55C8-4C64-9D1A-074850A3C3DC@oracle.com>
Content-Type: multipart/alternative; boundary="Apple-Mail=_F91014F7-39E4-4FB7-B969-C7A5980523F6"
Mime-Version: 1.0 (Mac OS X Mail 12.4 \(3445.104.11\))
Date: Thu, 26 Mar 2020 12:27:53 +0000
In-Reply-To: <370AAF66-833D-42FB-A714-56582937124E@mnot.net>
Cc: HTTP Working Group <ietf-http-wg@w3.org>, Roy Fielding <fielding@gbiv.com>
To: Mark Nottingham <mnot@mnot.net>
References: <84C127AC-BA21-4CD8-9F79-8920ADE5BA4C@ORACLE.COM> <370AAF66-833D-42FB-A714-56582937124E@mnot.net>
X-Mailer: Apple Mail (2.3445.104.11)
X-Proofpoint-Virus-Version: vendor=nai engine=6000 definitions=9571 signatures=668685
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0 adultscore=0 suspectscore=0 phishscore=0 spamscore=0 mlxscore=0 mlxlogscore=999 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2003020000 definitions=main-2003260095
X-Proofpoint-Virus-Version: vendor=nai engine=6000 definitions=9571 signatures=668685
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 suspectscore=0 spamscore=0 mlxlogscore=999 clxscore=1011 lowpriorityscore=0 mlxscore=0 phishscore=0 bulkscore=0 impostorscore=0 adultscore=0 malwarescore=0 priorityscore=1501 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2003020000 definitions=main-2003260094
Received-SPF: pass client-ip=156.151.31.85; envelope-from=colm.divilly@oracle.com; helo=userp2120.oracle.com
X-W3C-Hub-Spam-Status: No, score=-3.4
X-W3C-Hub-Spam-Report: 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, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_MED=-2.3, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, W3C_NW=1
X-W3C-Scan-Sig: mimas.w3.org 1jHRcO-0002AG-Hp f3d95246d6891079cb6ca533f37dc37e
X-Original-To: ietf-http-wg@w3.org
Subject: Re: New Version Notification for draft-divilly-status-555-00.txt
Archived-At: <https://www.w3.org/mid/6F5864DF-55C8-4C64-9D1A-074850A3C3DC@oracle.com>
Resent-From: ietf-http-wg@w3.org
X-Mailing-List: <ietf-http-wg@w3.org> archive/latest/37482
X-Loop: ietf-http-wg@w3.org
Resent-Sender: ietf-http-wg-request@w3.org
Precedence: list
List-Id: <ietf-http-wg.w3.org>
List-Help: <https://www.w3.org/Mail/>
List-Post: <mailto:ietf-http-wg@w3.org>
List-Unsubscribe: <mailto:ietf-http-wg-request@w3.org?subject=unsubscribe>

Hi Mark,
 thanks for taking the time to review this, based on your & Amos' [1] feedback, I've submitted a new draft:

Regarding this question:

> More generally, when someone needs to convey more refined information about what caused an error, the advice we give is to put that information in the response body or a response header. Did you consider that approach?

Yes, we include information in both the response header and the response body, we have found it to be largely ineffective. Our experience is that tools and humans see 500, think 'I know what that means...' and proceed to filing a problem report/complaining to the wrong party far too often. Also the extra information in the response header and body may end up being lost in the journey back to the client/monitoring tools. For example the access log will only show the status code, custom error pages may hide extra information in the response body. 

https://datatracker.ietf.org/doc/draft-divilly-user-defined-resource-error/ <https://datatracker.ietf.org/doc/draft-divilly-user-defined-resource-error/>

Changes in this draft:

- Use 5NN instead of 555 through out
- Remove 555 from the draft name
- Explain use of 5NN: https://tools.ietf.org/html/draft-divilly-user-defined-resource-error-00#section-1 <https://tools.ietf.org/html/draft-divilly-user-defined-resource-error-00#section-1>
- Explain why 500 Internal Server Error does not suffice: https://tools.ietf.org/html/draft-divilly-user-defined-resource-error-00#section-2.1 <https://tools.ietf.org/html/draft-divilly-user-defined-resource-error-00#section-2.1>. TLDR, folks only see the status code in the response, they ignore anything else is my experience
- Do not indicate that the draft seeks to update RFC 7231

Regarding the following point:

> I agree this condition is potentially applicable to any resource, but it might fall afoul of another principle that we haven't written down as well -- that HTTP focuses on standardising the interface to the resource, not its implementation details (which this seems to be about). Roy might have some more thoughts here.


I see this proposal as enhancing the interface rather than clouding it with implementation details. When an error occurs, then very often some follow up action needs to be taken. Often that action is to file a problem report or examine some logs. The purpose of this status code is to help inform the client with whom to file the problem report or which logs to examine.

This proposal provides a clear classification for tools and humans, that can inform their decision about to how to deal with the error condition.

This falls outside what HTTP does or should specify. I see this proposal as a tiny layer atop the HTTP protocol to help with this pain point. 

I still feel this a pretty specialised use-case at this time and there likely is not enough consensus to standardise this approach, which is why I filed it as an informational draft. My hope with submitting the original draft was that others with similar requirements might come across the draft and choose to harmonise on using 555 as the status code for this condition, and that over time a consensus might build that it would be appropriate to try get it standardised.

I understand now that this approach is not in line with RFC 7231, so I've amended the draft to avoid preferring (squatting on) any particular status code.

Regards,
Colm

[1]: https://lists.w3.org/Archives/Public/ietf-http-wg/2020JanMar/0244.html <https://lists.w3.org/Archives/Public/ietf-http-wg/2020JanMar/0244.html>

> On 26 Mar 2020, at 03:49, Mark Nottingham <mnot@mnot.net> wrote:
> 
> Hi Colm,
> 
> For reference, the guidance for new status codes is here:
>  https://httpwg.org/specs/rfc7231.html#considerations.for.new.status.codes <https://httpwg.org/specs/rfc7231.html#considerations.for.new.status.codes>
> I agree this condition is potentially applicable to any resource, but it might fall afoul of another principle that we haven't written down as well -- that HTTP focuses on standardising the interface to the resource, not its implementation details (which this seems to be about). Roy might have some more thoughts here.
> 
> More generally, when someone needs to convey more refined information about what caused an error, the advice we give is to put that information in the response body or a response header. Did you consider that approach?
> 
> Cheers,
> 
> P.S. As an aside - we discourage people from "squatting" on status codes like this because it makes it harder to use them in standards later, and they are a relatively scarce resource. Please don't use it until it has been standardised, and in the future, it's best to make proposals along the lines of "a new 5xx status code" rather than a specific number. Thanks.
> 
>