Subject: draft-bryan-metalinkhttp-22 and redirects

From: Matt Domsch <[email-masked]>
Date: Wed, 30 Mar 2011 20:38:57 -0500

Regarding section 7:

7.  Client / Server Multi-source Download Interaction

   Metalink clients begin a download with a standard HTTP [RFC2616]
   GET request to the Metalink server.  Metalink clients MAY use a Range
   limit if desired.

   GET /distribution/example.ext HTTP/1.1
   Host: www.example.com

   The Metalink server responds with the data and these header fields:
   HTTP/1.1 200 OK
   Accept-Ranges: bytes
   Content-Length: 14867603
   Content-Type: application/x-cd-image
   Etag: "thvDyvhfIqlvFe+A9MYgxAfm1q5="
   Link: <http://www2.example.com/example.ext>; rel=duplicate; pref
   ...

HTTP Servers are permitted to respond to an HTTP GET request with a
HTTP REDIRECT (30x) response, including a Location header, the target
of the redirect.  I presume this continues to be permitted, and that
the Link and other headers specified here may also be returned by the
server along with the redirect response.

In this case, I would expect Link rel=duplicate headers should be
considered as alternate Location headers, and that the Metalink client
may issue the subsequent request to any of the rel=duplicate URLs
using the priority field as appropriate, and should that subsequent
request fail, the client is permitted to re-issue the subsequent
request to another listed mirror from the Link list.

Please confirm, and clarify in the document if appropriate.

Thanks,
Matt
MirrorManager author (http://mirrormanager.org)

-- 
Matt Domsch
Technology Strategist, Dell Office of the CTO