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 :
-
Des CRLF supplémentaires peuvent précéder la première chaîne de délimitation dans le corps.
-
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.
-
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--