HTTP: Como devo mostrar Content-Type e Content-Disposition quando o cliente solicita um intervalo de bytes?

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

  •  05-07-2019
  •  | 
  •  

Pergunta

Perguntei sobre servindo intervalos de bytes do PHP. Hoje a minha pergunta é - como eu deveria definir Content-Type e Content-Disposition cabeçalhos ao servir vários intervalos de bytes solicitados? Devo repetir-los para cada intervalo de bytes ou devo apenas enviá-los uma vez no início? Ou talvez eu não deveria enviá-los em tudo, porque o cliente já deve saber o que ele está pedindo?

Foi útil?

Solução

Geralmente, os cabeçalhos de resposta HTTP deve ser o mesmo (repetida) se você voltar todo o recurso ou apenas uma parte dele; Exceto, é claro para o cabeçalho Content-Range que irá variar.

Lembre-se que o HTTP é apátrida, por isso cada resposta deve ser completa e capaz de estar no seus próprios. Se servir intervalos de bytes, você realmente deve também estar usando tags entidade (ETags); de modo que não há nenhuma chance de que um cliente pode solicitar e obter dois intervalos de bytes separados que realmente pertencem a diferentes revisões do mesmo recurso.

Outras dicas

Tenha um olhar em RFC 2616 (Seções 14.16 e 19.2, em particular). Se o cliente solicitar um único intervalo de bytes, a resposta deve conter um único intervalo de bytes, e valores de cabeçalho Content-Type e Content-Disposition não mudança de comportamento (que deve refletir o tipo de arquivo que está sendo servido). No entanto, se o cliente solicita vários intervalos de bytes em uma única solicitação, a resposta deve usar um Content-Type de "multipart / byteranges" em vez, e cada parte dentro do corpo especifica seu próprio cabeçalho Content-Type.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top