Re: [Ietf-message-headers] provisional registration: packaged content over http (5 headers)
Graham Klyne <GK-lists@ninebynine.org> Tue, 17 January 2012 08:44 UTC
Return-Path: <GK-lists@ninebynine.org>
X-Original-To: ietf-message-headers@ietfa.amsl.com
Delivered-To: ietf-message-headers@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 5E5FF21F8559 for <ietf-message-headers@ietfa.amsl.com>; Tue, 17 Jan 2012 00:44:53 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -6.599
X-Spam-Level:
X-Spam-Status: No, score=-6.599 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, RCVD_IN_DNSWL_MED=-4]
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 zh1FxdyrEQY7 for <ietf-message-headers@ietfa.amsl.com>; Tue, 17 Jan 2012 00:44:48 -0800 (PST)
Received: from relay3.mail.ox.ac.uk (relay3.mail.ox.ac.uk [163.1.2.165]) by ietfa.amsl.com (Postfix) with ESMTP id 36B9B21F8575 for <ietf-message-headers@ietf.org>; Tue, 17 Jan 2012 00:44:48 -0800 (PST)
Received: from smtp1.mail.ox.ac.uk ([129.67.1.207]) by relay3.mail.ox.ac.uk with esmtp (Exim 4.75) (envelope-from <GK-lists@ninebynine.org>) id 1Rn4eq-0002RI-CA; Tue, 17 Jan 2012 08:44:44 +0000
Received: from gklyne.plus.com ([80.229.154.156] helo=Eskarina.local) by smtp1.mail.ox.ac.uk with esmtpsa (TLSv1:AES256-SHA:256) (Exim 4.69) (envelope-from <GK-lists@ninebynine.org>) id 1Rn4eq-000352-3M; Tue, 17 Jan 2012 08:44:44 +0000
Message-ID: <4F1534E0.6040006@ninebynine.org>
Date: Tue, 17 Jan 2012 08:44:16 +0000
From: Graham Klyne <GK-lists@ninebynine.org>
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.5; rv:6.0) Gecko/20110812 Thunderbird/6.0
MIME-Version: 1.0
To: Richard Jones <rich.d.jones@gmail.com>
References: <CACEoUB2mQpmXowez2s4mZSanALRoZLSmkNZ5JK=FoDk041kGkw@mail.gmail.com>
In-Reply-To: <CACEoUB2mQpmXowez2s4mZSanALRoZLSmkNZ5JK=FoDk041kGkw@mail.gmail.com>
Content-Type: text/plain; charset="ISO-8859-1"; format="flowed"
Content-Transfer-Encoding: 7bit
X-Oxford-Username: zool0635
Cc: ietf-message-headers@ietf.org
Subject: Re: [Ietf-message-headers] provisional registration: packaged content over http (5 headers)
X-BeenThere: ietf-message-headers@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: "Discussion list for header fields used in Internet messaging applications." <ietf-message-headers.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/ietf-message-headers>, <mailto:ietf-message-headers-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/ietf-message-headers>
List-Post: <mailto:ietf-message-headers@ietf.org>
List-Help: <mailto:ietf-message-headers-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ietf-message-headers>, <mailto:ietf-message-headers-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 17 Jan 2012 08:44:53 -0000
[Resending: the original got stuck in moderation, didn't make it to the list] Hi Richard, A couple of comments here... My comments below notwithstanding, I don't think there are any specific problems for provisional registration (but I think further discussion would be needed for progression to permanent registration). (By way of full disclosure to other readers, I have been a technical advisor to the SWORD project which is presenting these proposals.) On 22/12/2011 17:31, Richard Jones wrote: > Packaging > > Header field name: Packaging > Applicable protocol: HTTP > Status: provisional > Author/Change controller: Richard Jones c/o UKOLN, University of Bath; > rich.d.jones@gmail.com > Specification Document: > http://sword-app.svn.sourceforge.net/viewvc/sword-app/spec/tags/sword-2.0/SWORD001.html?revision=377 > Related Information: http://swordapp.org/sword-v2/sword-v2-specifications/ > > > Accept-Packaging > > Header field name: Accept-Packaging > Applicable protocol: HTTP > Status: provisional > Author/Change controller: Richard Jones c/o UKOLN, University of Bath; > rich.d.jones@gmail.com > Specification Document: > http://sword-app.svn.sourceforge.net/viewvc/sword-app/spec/tags/sword-2.0/SWORD001.html?revision=377 > Related Information: http://swordapp.org/sword-v2/sword-v2-specifications/ [[ The Packaging header applies to resources delivered over HTTP which are comprised of component resources, and is for uniquely identifying these well structured packaged objects in a similar way that Content-Type does for MIME formats. ]] I think this would be a good opportunity to canvas for information about whether any other projects are addressing similar issues w.r.t. conveying information about packaging or composite object formats in HTTP. I'm pretty sure this isn't a one-off problem. Packaging doesn't really fall into the role of a content-type, as it doesn't say anything about the nature of purpose of the packaged content. But it also is not really a content transfer encoding, as it may convey application-relevant metadata in addition to simply encoding content for transfer. The nearest I can think of that has been addressed in the IETF is the MHTML work from some years ago, which uses multipart/related structures to bundle up the content of a web page (http://tools.ietf.org/html/rfc2557). But that doesn't really work in this case, as SWORD and related applications are already using a number of alternative formats that don't easily map into a multipart/related or similar MIME encapsulation structure. [[ The Packaging request header SHOULD be used by the client during HTTP POST to give information to the server about the packaging format used to construct the content being POSTed or PUT. Servers SHOULD use this information to unpack the supplied content into its component parts. If the server does not understand the package format it MUST either store the content as delivered without unpacking or respond with 415 (Unsupported Media Type). ]] It is not clear from this text that the SHOULD here applies to implementations of SWORD. For the header specification document, I think it would be better to avoid such normative claims about its use, which might be read as claiming that any HTTP client SHOULD use the header. e.g. just say "The Packaging request header may be used by a client ..." > On-Behalf-Of > > Header field name: On-Behalf-Of > Applicable protocol: HTTP > Status: provisional > Author/Change controller: Richard Jones c/o UKOLN, University of Bath; > rich.d.jones@gmail.com > Specification Document: > http://sword-app.svn.sourceforge.net/viewvc/sword-app/spec/tags/sword-2.0/SWORD001.html?revision=377 > Related Information: http://swordapp.org/sword-v2/sword-v2-specifications/ > > > In-Progress > > Header field name: In-Progress > Applicable protocol: HTTP > Status: provisional > Author/Change controller: Richard Jones c/o UKOLN, University of Bath; > rich.d.jones@gmail.com > Specification Document: > http://sword-app.svn.sourceforge.net/viewvc/sword-app/spec/tags/sword-2.0/SWORD001.html?revision=377 > Related Information: http://swordapp.org/sword-v2/sword-v2-specifications/ [[ The In-Progress request header MAY be used by the client to inform the server that the current content payload is not yet complete in some unspecified way during PUT, POST or DELETE. For example, there may by further content packages that the client plans to deliver to the server before the full content has been delivered, or the client may need to carry out other actions against the server before confirming that the server can proceed to fully process the content. Exact interpretation of this header is left to the server, so it is necessary that server/client pairs will have to have a common understanding of its meaning which is beyond the scope of this document. ]] This feels to me like an abuse of the HTTP protocol - if it modifies the intent of the method, that would be wrong, but that's not what I think is intended. Rather, it seems to modify the interpretation of the resource identified by the request URI, which makes me wonder if the intent might not be better conveyed by using a different server-designated URI for the parts. > Metadata-Relevant > > Header field name: Metadata-Relevant > Applicable protocol: HTTP > Status: provisional > Author/Change controller: Richard Jones c/o UKOLN, University of Bath; > rich.d.jones@gmail.com > Specification Document: > http://sword-app.svn.sourceforge.net/viewvc/sword-app/spec/tags/sword-2.0/SWORD001.html?revision=377 > Related Information: http://swordapp.org/sword-v2/sword-v2-specifications/ [[ The Metadata-Relevant request header MAY be used by the client to instruct the server to (attempt to) extract metadata from the supplied content package, during PUT, POST or DELETE. Content packages commonly contain both file content and metadata about its contents, and during unpacking servers may process this metadata in a way which is meaningful to them. If the content package is being supplied to an HTTP resource which is not interested in metadata, then it may be that the enclosed information will not be correctly or adequately treated. This directive allows the client to indicate to the server that there is metadata contained within the package which may be of interest to related resources (for example a resource which contains the resource receiving the content), and that the server should be free to update those resources accordingly. ]] Do you *really* mean for this to be applicable to HTTP DELETE operations? (A bit of Googling - e.g. http://www.spenceruresk.com/2011/11/http-delete-requests-that-include-a-body/, http://stackoverflow.com/questions/299628/is-an-entity-body-allowed-for-an-http-delete-request - suggests that there's no specific prohibition of sending data/metadata with a DELETE request, but that any such attempt is unlikely to be handled dependably by existing software. And it's really not clear what it would mean to send metadata about a resource that is being deleted.) Did you consider the option that the relevance of metadata might be conveyed by a parameter on the Packaging header field? This header doesn't seem to have any purpose independently of the Packaging header. #g --
- [Ietf-message-headers] provisional registration: … Richard Jones
- Re: [Ietf-message-headers] provisional registrati… Graham Klyne
- Re: [Ietf-message-headers] provisional registrati… Julian Reschke
- [Ietf-message-headers] Packaging, was: provisiona… Julian Reschke
- Re: [Ietf-message-headers] provisional registrati… Julian Reschke
- Re: [Ietf-message-headers] provisional registrati… Richard Jones
- Re: [Ietf-message-headers] Packaging, was: provis… Richard Jones
- Re: [Ietf-message-headers] Packaging, was: provis… Julian Reschke