Aller au contenu principal

Annexe A. Type de média Internet multipart/byteranges

Lorsqu'un message de réponse 206 (Partial Content) inclut le contenu de plusieurs plages, celles-ci sont transmises comme parties de corps dans un corps de message multipart ([RFC2046], section 5.1) de type de média "multipart/byteranges".

Le type de média multipart/byteranges comporte une ou plusieurs parties de corps, chacune avec ses propres champs Content-Type et Content-Range. Le paramètre obligatoire boundary spécifie la chaîne de délimitation utilisée pour séparer chaque partie de corps.

Notes d'implémentation :

  1. Des CRLF supplémentaires peuvent précéder la première chaîne de délimitation dans le corps.

  2. Bien que [RFC2046] permette de mettre la chaîne de délimitation entre guillemets, certaines implémentations existantes traitent incorrectement une chaîne de délimitation entre guillemets.

  3. Un certain nombre de clients et de serveurs ont été codés d'après une première ébauche de la spécification byteranges qui utilisait un type de média multipart/x-byteranges, presque (mais pas tout à fait) compatible avec ce type.

Malgré son nom, le type de média "multipart/byteranges" n'est pas limité aux plages d'octets. L'exemple suivant utilise l'unité de plage "exampleunit" :

HTTP/1.1 206 Partial Content
Date: Tue, 14 Nov 1995 06:25:24 GMT
Last-Modified: Tue, 14 July 04:58:08 GMT
Content-Length: 2331785
Content-Type: multipart/byteranges; boundary=THIS_STRING_SEPARATES

--THIS_STRING_SEPARATES
Content-Type: video/example
Content-Range: exampleunit 1.2-4.3/25

...the first range...
--THIS_STRING_SEPARATES
Content-Type: video/example
Content-Range: exampleunit 11.2-14.3/25

...the second range
--THIS_STRING_SEPARATES--