HTTP: Comment dois-je afficher Content-Type et Content-Disposition lorsque le client demande une plage d'octets?

StackOverflow https://stackoverflow.com/questions/1401529

  •  05-07-2019
  •  | 
  •  

Question

Hier, j'ai demandé à propos de servir octets va de PHP. Aujourd'hui, ma question est la suivante: comment définir des en-têtes Content-Type et Content-Disposition lors de la desserte de plusieurs plages d'octets demandées? Devrais-je les répéter pour chaque plage d'octets ou devrais-je les sortir une fois au début? Ou peut-être que je ne devrais pas les sortir du tout parce que le client devrait déjà savoir ce qu'il demande?

Était-ce utile?

La solution

En règle générale, les en-têtes de réponse HTTP doivent être identiques (répétés) si vous renvoyez la totalité ou une partie de la ressource. sauf bien sûr pour l'en-tête Content-Range qui varie.

N'oubliez pas que HTTP est sans état. Par conséquent, chaque réponse doit être complète et autonome. Si vous utilisez des plages d'octets, vous devriez également utiliser des balises d'entité (ETags); de sorte qu'il n'y ait aucune chance qu'un client puisse demander et obtenir deux plages d'octets distinctes qui appartiennent réellement à différentes révisions de la même ressource.

Autres conseils

Consultez la RFC 2616 (sections 14.16 et 19.2 en particulier). Si le client demande une plage d'octets unique, la réponse doit contenir une plage d'octets unique et les valeurs d'en-tête Content-Type et Content-Disposition ne changent pas de comportement (elles doivent refléter le type du fichier servi). Toutefois, si le client demande plusieurs plages d'octets dans une seule demande, la réponse doit utiliser un type de contenu de "multipart / byteranges". à la place, chaque partie du corps spécifie son propre en-tête Content-Type.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top