Re: [apps-discuss] Partially fulfilled / draft-nottingham-http-new-status

"Markus Lanthaler" <markus.lanthaler@gmx.net> Tue, 06 December 2011 05:46 UTC

Return-Path: <markus.lanthaler@gmx.net>
X-Original-To: apps-discuss@ietfa.amsl.com
Delivered-To: apps-discuss@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id DC00121F8AFE for <apps-discuss@ietfa.amsl.com>; Mon, 5 Dec 2011 21:46:33 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.945
X-Spam-Level:
X-Spam-Status: No, score=-1.945 tagged_above=-999 required=5 tests=[AWL=-0.794, BAYES_00=-2.599, MSGID_MULTIPLE_AT=1.449]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id nAltyg4RXokH for <apps-discuss@ietfa.amsl.com>; Mon, 5 Dec 2011 21:46:33 -0800 (PST)
Received: from mailout-de.gmx.net (mailout-de.gmx.net [213.165.64.23]) by ietfa.amsl.com (Postfix) with SMTP id 04B0821F8511 for <apps-discuss@ietf.org>; Mon, 5 Dec 2011 21:46:32 -0800 (PST)
Received: (qmail invoked by alias); 06 Dec 2011 05:46:28 -0000
Received: from cbs1005165.staff.ad.curtin.edu.au (EHLO cbs1005165) [134.7.114.19] by mail.gmx.net (mp005) with SMTP; 06 Dec 2011 06:46:28 +0100
X-Authenticated: #419883
X-Provags-ID: V01U2FsdGVkX1+ZGS0xoxiZSRFU0flMAiVR9kG2fVVTTcqzMo1Qrz 58FivQuXo7drwP
From: "Markus Lanthaler" <markus.lanthaler@gmx.net>
To: <ietf-http-wg@w3.org>, <mnot@mnot.net>, <apps-discuss@ietf.org>
References: <000e01ccb3c1$4c347cb0$e49d7610$@lanthaler@gmx.net>
In-Reply-To: <000e01ccb3c1$4c347cb0$e49d7610$@lanthaler@gmx.net>
Date: Tue, 6 Dec 2011 13:46:19 +0800
Message-ID: <003f01ccb3da$6779f4f0$366dded0$@lanthaler@gmx.net>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
X-Mailer: Microsoft Office Outlook 12.0
Thread-Index: AcyzwOUppKnhHqqhQXibWN4+QxVYqAAF3hAg
Content-Language: en-us
x-ms-exchange-organization-originalclientipaddress: 10.9.122.8
x-ms-exchange-organization-originalserveripaddress: 10.9.122.252
X-Y-GMX-Trusted: 0
Subject: Re: [apps-discuss] Partially fulfilled / draft-nottingham-http-new-status
X-BeenThere: apps-discuss@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: General discussion of application-layer protocols <apps-discuss.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/apps-discuss>, <mailto:apps-discuss-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/apps-discuss>
List-Post: <mailto:apps-discuss@ietf.org>
List-Help: <mailto:apps-discuss-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/apps-discuss>, <mailto:apps-discuss-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 06 Dec 2011 05:46:34 -0000

Mark,

I've considered 202 Accepted but it has a completely different meaning. 202
is defined as:

  "The request has been accepted for processing, but the processing has not
   been completed. The request might or might not eventually be acted
upon.."

I proposed to introduce a new status code for requests that have been fully
processed but could just be fulfilled partially. Thinking more about it I
came up with another example where this might be very useful.

Assume we have a Web service. Clients send requests and everything works
fine -> 200 OK. At a certain point in time the Web service adds new
optional(!) functionality which is not critical and clients start to use it.
A simple example could be that clients transmit some additional data. If the
server gets updated as well and understand all the data, again a 200 OK is
fine.

But if a server is not updated to the latest version it might understand
just parts of the request (the critical part) and simply ignore the other
parts. To tell the client that it successfully processed the request but
didn't understand parts of the request he would return a, e.g., 209
Partially Fulfilled.

I think such a behaviour would be very important in evolving systems. As far
as I know, there are currently only two ways to deal with it: either process
the request and return a 200 OK signalling everything was OK or ignoring the
request and returning a 400 Bad Request.


--
Markus Lanthaler
@markuslanthaler