HTTP: come devo mostrare Content-Type e Content-Disposition quando il client richiede un intervallo di byte?

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

  •  05-07-2019
  •  | 
  •  

Domanda

Ieri Ho chiesto sulla fornitura di intervalli di byte da PHP. Oggi la mia domanda è: come devo impostare le intestazioni Content-Type e Content-Disposition quando offro diversi intervalli di byte richiesti? Devo ripeterli per ogni intervallo di byte o devo semplicemente emetterli una volta all'inizio? O forse non dovrei emetterli affatto perché il client dovrebbe già sapere cosa sta chiedendo?

È stato utile?

Soluzione

In genere, le intestazioni di risposta HTTP dovrebbero essere le stesse (ripetute) se si restituisce l'intera risorsa o solo una parte di essa; tranne ovviamente per l'intestazione Content-Range che varierà.

Ricorda che HTTP è senza stato, quindi ogni risposta dovrebbe essere completa e in grado di resistere da sola. Se servi intervalli di byte, dovresti davvero usare anche tag entità (ETag); in modo che non vi sia alcuna possibilità che un client possa richiedere e ottenere due intervalli di byte separati che appartengono realmente a diverse revisioni della stessa risorsa.

Altri suggerimenti

Dai un'occhiata a RFC 2616 (in particolare le sezioni 14.16 e 19.2). Se il client richiede un intervallo di byte singolo, la risposta deve contenere un intervallo di byte singolo e i valori dell'intestazione Content-Type e Content-Disposition non cambiano il comportamento (devono riflettere il tipo di file offerto). Tuttavia, se il client richiede più intervalli di byte in una singola richiesta, la risposta deve utilizzare un tipo di contenuto di "multipart / byteranges" invece, e ogni parte all'interno del corpo specifica la propria intestazione Content-Type.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top