W3C home > Mailing lists > Public > ietf-http-wg@w3.org > April to June 2018

Re: HTTP Instance Digests and encoding

From: Mark Nottingham <mnot@mnot.net>
Date: Tue, 22 May 2018 15:10:01 +1000
Cc: HTTP Working Group <ietf-http-wg@w3.org>
Message-Id: <8B2E325A-A367-4A8C-AF3D-C6A7DFB5644A@mnot.net>
To: Lucas Pardue <Lucas.Pardue@bbc.co.uk>
Hey Lucas,

Note that this is very old and hasn't been adopted, but Jeff Mogul's paper here might help illuminate the thinking behind "instances":


> On 16 May 2018, at 8:24 pm, Lucas Pardue <Lucas.Pardue@bbc.co.uk> wrote:
> Hi,
> We’ve been looking at HTTP Instance Digest as defined in RFC 3230. The document seems to skim over a detail that is causing us some internal debate when considering compression like gzip. The question boils down to whether a digest should be calculated on the pre-compressed object or post-compressed one.
> Section 4.2 states:
> The digest is computed on the entire instance associated with the message. The instance is a snapshot of the resource prior to the application of any instance manipulation or transfer-coding (see section 3). The byte order used to compute the digest is the transmission byte order defined for the content-type of the instance.
> Note: the digest is computed before the application of any instance manipulation. If a range or a delta-coding [9] is used, the computation of the digest after the computation of the range or delta would not provide a digest useful for checking the integrity of the reassembled instance.
> Section 3 defines the relevant items:
>    instance          The entity that would be returned in a status-200
>                      response to a GET request, at the current time, for
>                      the selected variant of the specified resource,
>                      with the application of zero or more content-
>                      codings, but without the application of any
>                      instance manipulations or transfer-codings.
>    instance manipulation
>                      An operation on one or more instances which may
>                      result in an instance being conveyed from server to
>                      client in parts, or in more than one response
>                      message.  For example, a range selection or a delta
>                      encoding.  Instance manipulations are end-to-end,
>                      and often involve the use of a cache at the client.
> In our usage, resources are compresses with gzip and have an accompanying Content-encoding: gzip response header. Treating this as an instance manipulation is beneficial, because we allows a server to precompute the digest independent of the format of the compression used to deliver the resource.
> Kind regards
> Lucas
> ----------------------------
> http://www.bbc.co.uk
> This e-mail (and any attachments) is confidential and may contain personal views which are not the views of the BBC unless specifically stated.
> If you have received it in error, please delete it from your system.
> Do not use, copy or disclose the information in any way nor act in reliance on it and notify the sender immediately.
> Please note that the BBC monitors e-mails sent or received.
> Further communication will signify your consent to this.
> ---------------------

Mark Nottingham   https://www.mnot.net/
Received on Tuesday, 22 May 2018 05:10:37 UTC

This archive was generated by hypermail 2.4.0 : Thursday, 2 February 2023 18:43:59 UTC