Re: HTTP Instance Digests and encoding

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":
  http://wwwconference.org/proceedings/www2002/refereed/444/index.html

Cheers,



> 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