HTTP: ¿Cómo debo mostrar Content-Type y Content-Disposition cuando el cliente solicita un rango de bytes?

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

  •  05-07-2019
  •  | 
  •  

Pregunta

Ayer pregunté acerca de servir rangos de bytes desde PHP. Hoy mi pregunta es: ¿cómo debo configurar los encabezados Content-Type y Content-Disposition cuando se atienden varios rangos de bytes solicitados? ¿Debería repetirlos para cada rango de bytes o debería generarlos una vez al principio? ¿O tal vez no debería enviarlos porque el cliente ya debería saber lo que está preguntando?

¿Fue útil?

Solución

Generalmente, los encabezados de respuesta HTTP deben ser los mismos (repetidos) si devuelve todo el recurso o solo una parte de él; excepto, por supuesto, el encabezado Content-Range que variará.

Recuerde que HTTP no tiene estado, por lo que cada respuesta debe estar completa y ser capaz de mantenerse por sí sola. Si sirve rangos de bytes, realmente también debería usar etiquetas de entidad (ETags); para que no haya posibilidad de que un cliente pueda solicitar y obtener dos rangos de bytes separados que realmente pertenecen a diferentes revisiones del mismo recurso.

Otros consejos

Eche un vistazo a RFC 2616 (Secciones 14.16 y 19.2 en particular). Si el cliente solicita un rango de un solo byte, la respuesta debe contener un rango de un solo byte, y los valores de encabezado Content-Type y Content-Disposition no cambian el comportamiento (deben reflejar el tipo de archivo que se sirve). Sin embargo, si el cliente solicita varios rangos de bytes en una sola solicitud, la respuesta debe usar un Tipo de contenido de "multipart / byteranges". en su lugar, y cada parte dentro del cuerpo especifica su propio encabezado Content-Type.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top